반응형

http://goo.gl/9EFSf










Introductory Example

A brief example using the circular_buffer:

#include <boost/circular_buffer.hpp> int main(int /*argc*/, char* /*argv*/[]) { // 3개 int용량으로 환원버퍼를 만든다

boost::circular_buffer<int> cb(3); // 버퍼안에 몇개의 요소를 삽입한다. cb.push_back(1); cb.push_back(2); cb.push_back(3); int a = cb[0]; // a == 1 int b = cb[1]; // b == 2 int c = cb[2]; // c == 3 // 버퍼는 지금 가득찬다, 뒤이은 요소들을 넣는것은 가장 앞의 요소를 덮어쓸 것이다

// (역자 : push_back을 해보면 알 수 있는데 값 뿐만이 아니라 begin 이 가르키는

//        곳 또한 다음 요소를 가르키게된다, 꽉찬 상태에서 덮어쓰면 첫번째 요소는 

     //      새로운 값으로 덮어씌워지고 그것이 마지막 요소가 됨으로 ) cb.push_back(4); // 1을 4로 덮어쓴다. cb.push_back(5); // 2를 5로 덮어쓴다 // 이제 버퍼는 3,4,그리고 5를 담는다 a = cb[0]; // a == 3 b = cb[1]; // b == 4 c = cb[2]; // c == 5

// 요소들은 다른 front또는 back으로부터 pop 되어진다.

// (역자 : pop_back, pop_front는 컨테이너의 사이즈도 같이 줄게된다 ) cb.pop_back(); // 5가 지워진다. cb.pop_front(); // 3이 지워진다.


int d = cb[0]; // d == 4 return 0; }

반응형

'메타프로그래밍 > Boost::' 카테고리의 다른 글

boost::bind, boost::mem_fn, boost::ref 조합  (0) 2013.03.01
boost::bind & ref, cref  (0) 2013.02.28
boost::any  (0) 2013.02.13
boost::variant  (0) 2013.02.13
Boost::foreach  (0) 2013.01.29

+ Recent posts