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

标签 c++ arrays data-structures queue c++03

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

例如:

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 中是否有内置数据结构,还是我需要自己制作?

最佳答案

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

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

关于c++ - 什么数据类型的结构具有最大大小且元素是 FIFO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59397917/

相关文章:

c++ - for 循环中的未定义行为 - 表达式分隔不应该使它定义明确吗?

c++ - 在通用 lambda 中使用 constexpr-if 来确定参数的类型

arrays - 数组长度的 Jsonpath

c++ - 如何从 IBM i 文件中获取成员列表?

python - 在一条消息中分离 AES/CBC IV 和密文

java - 最大堆未按预期工作

c++ - 递归和函数 c++

php - MySQL 数组与 PHP

arrays - 检查字符串是否只有字母和空格

c++ - C++ 编译器是否执行一些技巧来加快类内数据的移动速度?