问题
I am using boost library in MAC (xcode). I have two questions about boost::circular_buffer.
1 - I am getting syntax error when declaring the circular_buffer
boost::circular_buffer<int> cb(10);
Expected parameter decelerator
Expected ')'
2 - Second question is when I add element into boost::circular_buffer using push_back, how to extract / get the element from circular_buffer, pop_front does not give the element.
回答1:
boost::circular_buffer<T>::front() gives you a reference to the element at the "front", while boost::circular_buffer<T>::pop_front() will remove that element.
boost::circular_buffer<T>::back() gives you a reference to the element at the back, while boost::circular_buffer<T>::pop_back() removes that element.
It appears your syntax error is resulting from the most vexing parse. Try instead:
boost::circular_buffer<int> cb;
cb.set_capacity(10);
Or more succinctly:
boost::circular_buffer<int> cb((10));
来源:https://stackoverflow.com/questions/21760121/how-to-get-element-from-circular-buffer