◎ vector<bool>
- bool은 크기가 1바이트 이지만 true or false 를 기억하는데 1비트만 있으면 된다. --> 7비트 낭비
- bool형에 특수화 되어 있어 하나의 값을 저장하는데 비트 하나만 사용 --> c구조체의 비트필드와 유사
- vector<bool>은 진위형의 요소들을 1비트에 하나씩 압축하여 저장하는 별도의 독립 클래스
- vector<BOOL>도 가능하나 BOOL은 정수와 크기가 같다. ==> vector<bool>보다 32배 크다.
- vector<bool> 표준에 포함되어 있긴하나 몇가지 문제점과 컴파일러마다 지원 범위가 다르다. ==> 가급적 사용을 자제.
- 사용예)
1 #include <iostream>
2 #include <vector>
3
4 using namespace std;
5
6 void main()
7 {
8 vector<bool> vb(32);
9
10 cout << vb[10] << endl;
11 vb[10]=true;
12 cout << vb[10] << endl;
13
14 vector<bool>::reference r=vb[10];
15 cout << r << endl;
16 r.flip();
17 cout << r << endl;
18 vector<bool>::iterator it;
19 for (it=vb.begin();it!=vb.end();it++) {
20 cout << *it;
21 }
22 }
ps : 출처 및 자세한 내용은 www.WinAPI.co.kr 참고
'[ C/ C++ 프로그래밍 ] > [ STL ]' 카테고리의 다른 글
[ 혼연 정리 ] 시퀀스 컨테이너- 7 [ 리스트 ] (0) | 2010.06.24 |
---|---|
[ 혼연 정리 ] 시퀀스 컨테이너- 6 [ 리스트 ] (0) | 2010.06.24 |
[ 혼연 정리 ] 시퀀스 컨테이너 - 4 [ 벡터 ] (0) | 2010.06.24 |
[ 혼연 정리 ] 시퀀스 컨테이너 - 3 [ 벡터 ] (0) | 2010.06.24 |
[ 혼연 정리 ] 시퀀스 컨테이너 - 2 [ 벡터 ] (0) | 2010.06.24 |