boost中circular_buffer存儲字符串的使用示例

#include <boost/circular_buffer.hpp>

using namespace boost;

#define  CIRCUALR_BUFFER_SIZE 1024*1024*1 //2MB
int main()
{
 boost::circular_buffer<char>  cb(5);
 cb.push_back('a');
 cb.push_back('b');

  char ch[20] = {0};
  strcpy(ch,"helloworl2");
  int nSize = strlen(ch);
 
 cb.insert(cb.end(),&ch[0],&ch[nSize]);//使用尾插法
 cout << "begin: " <<*(cb.begin() + 6%cb.size()) <<endl;//使用迭代器不能超出circular_buffer的大小
 cout <<"end: " <<*(cb.end()-1) <<endl; //最後一個元素的位置爲end()-1
 std::string str2;
 str2.append(cb.begin(),cb.end()); //將circular_buffer中的數據全部保存到string中
 cout << str2 <<endl;

 return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章