为什么提升circular_buffer存储我的布尔值?
Why doesn't boost circular_buffer store my booleans?
这段简单的代码向循环缓冲区添加了2个bool
s。
boost::circular_buffer<bool> stuff;
stuff.push_back(false);
stuff.push_back(true);
cout << stuff.size() << endl; // prints 0
不幸的是,似乎没有添加任何对象,并且size()
为零。有人能帮我找出原因吗?
您不设置circular_buffer
的容量。
根据文件
现在构造函数不分配任何内存,并且容量和大小都设置为零。还要注意,当将元素插入到容量为零的circular _buffer中时(例如,通过push_back(const_reference)或insert(迭代器,value_type)),将不会插入任何元素,并且大小(以及容量)保持为零。
因此,您应该这样构造缓冲区:
size_t const BUFFER_CAPACITY(1024); // Whatever is appropriate
boost::circular_buffer<bool> stuff(BUFFER_CAPACITY);
另一种选择是在施工后使用set_capacity(...)
方法:
boost::circular_buffer<bool> stuff;
// ...
size_t BUFFER_SIZE(1024); // Whatever is appropriate
stuff.set_capacity(BUFFER_CAPACITY);
Nevermind,我忘记指定缓冲区的容量。不过,Boost让我逍遥法外,这很烦人。
相关文章:
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 我可以存储数据的地方/C++,Linux,QtCreator
- 为什么我的 std::set 不存储唯一值?
- 为什么当我使用双精度时,Qt<->Matlab 正确写入和读取我的字节,但存储 uint32 的字节不正确?
- 无法将任何内容存储到我的数组中
- 为什么数据中的随机部分替换了曾经存储在我的角色数组中的其他数据
- 如何存储我从使用 getch(); 获得的用户输入
- 在我的代码中执行存储过程时出现问题
- 如果我在我的函数中返回一个类,它存储在哪里
- 我将如何存储类的成员函数
- 为什么提升circular_buffer存储我的布尔值?
- 如何将文本文件读入我的主函数并将其存储在数组中
- C++:了解我的计算机如何存储字节
- 如何通过C++和C#中的键盘立即按下(不按enter)将用户的数据存储在我的变量中
- OpenSSL:我使用存储外部文件的RSA密钥加密和解密文件,但有时我的程序会崩溃
- 为什么我的 SetBookTitle 不存储字符串
- 如何将值存储在我的类私有数组中?C++11.
- 为什么我的数组存储不需要的值
- 我应该使用文件系统还是数据库来存储我的数据在我的音乐识别应用程序
- 需要选择一个容器来存储我的数据