我试图想办法将命令历史记录保存在一个大小为[10]的数组中,并在保持其大小不变的情况下,始终显示最后10个命令。是否存在不涉及队列或列表的实现?也许是这样的,给阵列一些更多的空间,并填充命令,但打印不同的索引?我在Windows机器上使用C语言。
答案 0 :(得分:2)
你想要一个circular buffer。有很多实现。
答案 1 :(得分:2)
只需将数组视为循环缓冲区,并将cur
变量指向最近的条目。
添加条目:
cur = (cur + 1) % size;
打印数组中的所有内容:
printf("%d\n", cur);
for (i = (cur + 1) % size; i != cur; i = (i + 1) % size)
printf("%d\n", i);