◎ 데크 (Deque)
- 양쪽 끝이 있는 큐
- 양끝에서 삽입, 삭제 가능
- 주로 메로리 블록을 할당하여 연결해 놓고 양쪽 끝으로 추가할당해 나가는 방식 ==> 컴파일마다 방식이 다름
- 벡터와 비슷한 특성
- 양쪽에 끝이 있으므로 앞쪽에서도 삽입, 삭제가 빠르다. push_front, pop_front 가능
- reserve, capacity 함수 불필요
- 내부 구조가 다름으로 인해 삽입, 삭제시의 반복자 무효화 규칙도 차이가 남
- 앞쪽에서 삽입, 삭제가 베턱보다 훨씬 빠르다.
- 나머지 연산들은 벡터보다 일반적으로 느리다.
- 벡터와 데크는 기능적으로 완전히 대체 가능 , 속도의 차이만 있다.
- 임의 접근 박복자 지원, '[]'연산자로 임의 위치 엑세스 가능,
- 제공하는 함수 목록 벡터와 거의 동일
- 생성자는 완전히 같다. inset, delete 등의 함수들도 동일
ㅇ 간단한 예)
1 #include <iostream>
2 #include <deque>
3
4 using namespace std;
5
6 void main()
7 {
8 deque<int> dq;
9 dq.push_back(8);
10 dq.push_back(9);
11 dq.push_front(2);
12 dq.push_front(1);
13 for (unsigned i=0;i<dq.size();i++) { cout << dq[i]; }
14 }
'[ C/ C++ 프로그래밍 ] > [ 알고리즘&자료구조 ]' 카테고리의 다른 글
[ 알고리즘 문제풀기 ] LCDDISPLAY (0) | 2010.08.06 |
---|