如何从circular_buffer获取元素

时间:2014-02-13 16:38:43

标签: c++ boost boost-circularbuffer

我在MACxcode)中使用了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不会给元素。

1 个答案:

答案 0 :(得分:4)

boost::circular_buffer<T>::front()为您提供了对“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));