什么数据类型的结构具有最大大小且元素是 FIFO?

What data type would have a structure with a maximum size and elements are FIFO?

我想存储一些值,但一次只能存储三个。如果要存储第四个值,将删除结构中最旧的值以腾出空间。

例如:

const unsigned int BUFFER = 3; // maximum size
SomeType s(BUFFER);
s.add(1); // s is now 1 --> NULL --> NULL
s.add(3); // s is now 3 --> 1 --> NULL
s.add(6); // s is now 6 --> 3 --> 1
s.add(4); // s is now 4 --> 6 --> 3 (1 was removed)

C++03 中是否有内置数据结构,或者我需要自己制作吗?

Is there a built in data structure in C++03

适合您描述的数据结构是循环缓冲区。

标准库中没有这样的容器。

or am I required to make my own?

你可以自己制作。循环缓冲区可以在序列容器之上实现。或者 - 一如既往 - 您可以使用预先存在的库。

就 C++ 的内置结构而言,您可以使用 std::queue,但您需要自己检查大小,因为没有内置方法将其限制为 3。

如果您只是在将项目推入 FIFO 队列时检查队列的大小,这将非常简单。如果队列已经在 size==3,则调用 pop 函数删除列表顶部的元素,然后 push 将新元素放入队列。