boost之circular_buffer
2017-01-03 11:19
309 查看
circular_buffer
#include <iostream> #include <boost/typeof/typeof.hpp> #include <boost/assign.hpp> #include <boost/circular_buffer.hpp> using namespace std; using namespace boost; template<typename T> void print(T& cb) { for (BOOST_AUTO(pos, cb.begin()); pos != cb.end(); ++pos) { cout << *pos << endl; } } int main() { ///////一般用法 circular_buffer<int>cb(5); assert(cb.empty()); cb.push_back(12); cb.push_front(34); assert(cb.front() == 34); assert(cb.back() == 12); cb.insert(cb.begin(),1); assert(cb.front() == 1); assert(cb.size() == 3); for (BOOST_AUTO(pos, cb.begin()); pos != cb.end(); ++pos) { cout << *pos << endl; } cb.pop_back(); assert(cb.back() == 34); cb.pop_front(); assert(cb.size() == 1); using namespace boost::assign; ///////字典序比较 circular_buffer<int> cb1((list_of(1), 2, 3).begin(), (list_of(1), 2, 3).end()); circular_buffer<int> cb2((list_of(3), 4, 5).begin(), (list_of(3), 4, 5).end()); circular_buffer<int> cb3 = cb1; assert(cb1 < cb2); assert(cb1 == cb3); ///////测试环形缓冲区 circular_buffer<int>cb4((list_of(1),2,3).begin(),(list_of(1),2,3).end()); print(cb4); cb4.push_back(4); print(cb4); cb4.push_back(5); print(cb4); cb4.pop_front(); print(cb4); ///////full函数 linearize函数 rotate函数 circular_buffer<int>cb5((list_of(1), 2, 3, 4, 5).begin(), (list_of(1), 2, 3, 4, 5).end()); assert(cb5.full()); print(cb5); int* p = cb5.linearize(); assert(p[0] == 1 && p[2] == 3); cb5.rotate(cb5.begin() + 2); print(cb5); ///////使用 circular_buffer_space_optimized circular_buffer_space_optimized<int>cb6(10); push_back(cb6)(1), 2, 3, 4; assert(cb6.size() == 4); assert(cb6.capacity() == 10); cb6.resize(100, 10); assert(cb6.size() == cb6.capacity()); system("pause"); return 0; }
相关文章推荐
- boost.circular_buffer简介
- [转] boost.circular_buffer简介
- Boost学习之循环缓冲区--circular_buffer
- 环形缓冲区-boost circular buffer & 读写锁(shared_mutex)
- 环形缓冲区,魔戒lordrings,boost的circular_buffer
- boost::circular_buffer
- boost::circular_buffer的push_back简单分析
- boost.circular_buffer简介
- 环形缓冲区,魔戒lordrings,boost的circular_buffer
- Boost 之circular_buffer
- boost中circular_buffer存储字符串的使用示例
- boost中circular_buffer存储字符串的使用示例
- Boost::circular_buffer——循环缓冲区
- boost.circular_buffer简介
- boost.circular_buffer简介
- 环形缓冲区,魔戒lordrings,boost的circular_buffer
- boost::circular_buffer简介
- boost.circular_buffer简介
- boost circular buffer环形缓冲类
- boost中circular_buffer库使用,接口和STL中的deque,list类似