c++ - 如何从circular_buffer中获取元素

标签 c++ boost boost-circularbuffer

我正在 MAC (xcode) 中使用 boost 库。我有两个关于 boost::circular_buffer 的问题。

1 - 声明circular_buffer时出现语法错误

boost::circular_buffer<int> cb(10);

Expected parameter decelerator
Expected ')'

2 - 第二个问题是当我使用push_back将元素添加到boost::circular_buffer中时,如何从circular_buffer中提取/获取元素,pop_front没有给出该元素.

最佳答案

boost::circular_buffer<T>::front()为您提供对“前面”元素的引用,而 boost::circular_buffer<T>::pop_front()将删除该元素。

boost::circular_buffer<T>::back()为您提供对后面元素的引用,而 boost::circular_buffer<T>::pop_back()删除该元素。

您的语法错误似乎是由 the most vexing parse. 引起的尝试一下:

boost::circular_buffer<int> cb;
cb.set_capacity(10); 

或更简洁地说:

boost::circular_buffer<int> cb((10));

关于c++ - 如何从circular_buffer中获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21760121/

相关文章:

javascript - Boost Regex 查找主机/域名

c++ - 元气解析空字

c++ - 在磁盘上使用循环缓冲区

c++ - 在同一类模板中存储常量或非常量引用

c++ - 为什么我在为 vector <int> 实现这个简单的散列时出错?

c++ - 确定 CPU 缓存中值的值和/或地址

c++ - 逐行读取文件并存储不同的变量

c++ - 为什么 gcc 为带有过滤范围的 deque::insert 提供可能未初始化的警告