boost 라이브러리의 링버퍼(circular buffer) 사용방법
Software/C++ Builder2023. 2. 6. 16:04
반응형
boost 라이브러리에 있는 링버퍼(circular buffer)의 사용방법입니다.
이 부스트 라이브러리의 링버퍼는 큐(Queue) 를 사용하고 있는 듯 합니다. 버퍼가 가득찬 상태에서 추가로 데이타가 들어오면 가장먼저 들어온 데이타 순서로 제거 되면서 버퍼를 Shift 시키면서 데이타를 저장하는 방식입니다.
#include <boost/circular_buffer.hpp>
// Create a circular buffer with a capacity for 3 integers.
boost::circular_buffer<int> cb(3);
// Insert three elements into the buffer.
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
// The buffer is full now, so pushing subsequent
// elements will overwrite the front-most elements.
cb.push_back(4); // Overwrite 1 with 4.
cb.push_back(5); // Overwrite 2 with 5.
// The buffer now contains 3, 4 and 5.
a = cb[0]; // a == 3
b = cb[1]; // b == 4
c = cb[2]; // c == 5
// Elements can be popped from either the front or the back.
cb.pop_back(); // 5 is removed.
cb.pop_front(); // 3 is removed.
// Leaving only one element with value = 4.
int d = cb[0]; // d == 4
반응형
'Software > C++ Builder' 카테고리의 다른 글
Gradation 기능 구현 C++ (0) | 2023.03.23 |
---|---|
uSec 딜레이 구현 함수 C++ (0) | 2023.03.21 |
원의 중심과 반지름을 이용한 원 그리기 C++ (0) | 2023.03.21 |
실행중인 화면을 jpeg 이미지로 저장 C++ (0) | 2023.03.17 |
(C++) 폴더안에 특정 확장자를 가지는 파일들을 찾는 함수 구현 (0) | 2023.02.06 |
댓글()