모든 순차 컨테이너들과 string 타입은 다음과 같은 연산들을 제공한다.


container<T>::iterator

container<T>::const_iterator // 이 컨테이너에 대한 반복자의 타입명

container<T>::size_type // 이 컨테이너의 인스턴스가 가질 수 있는 최대 사이즈 갑을 저장할 수 있는 타입의 이름

c.begin()

c.end() // 컨테이너의 첫 번째 및 마지막 요소를 가리키는 반복자

c.rbegin()

c.rend() // 컨테이너의 요소를 역순으로 접근할 수 있도록 컨테이너의 마지막 및 (하나 이전의) 첫 번째 요소를 가리키는 반복자

container<T> c();

container<T> c( c2 ); // 빈 컨테이너로서의 c를 정의하거나, 만약 주어진다면, c2의 복사본으로서의 c를 정의합니다.

container<T> c( n ); // T의 타입에 따라 값지정-초기화된 n개의 요소들을 갖는 컨테이너로서의 c를 정의합니다. 만약 T가 클래스 타입이라면, 이 클래스 타입에 따라 요소들이 어떻게 초기화될 것인지가 결정됩니다. 만약 T가 내장된 연산 타입이라면, 요소들은 0으로 초기화 됩니다.


container<T> c( n, t ); // t의 복사본인 n 개의 요소들을 갖는 컨테이너로서의 c를 정의합니다.

container<T> c( b, e ); // b, e 범위의 반복자로 얻어진 요소들의 복사본을 담는 컨테이너를 생성합니다.

c = c2 // 컨테이너 c의 내용을 컨테이너 c2의 복사본으로 변경합니다.

c.size() c의 요소들의 개수를 size_type 으로 리턴합니다.

c.empty() c에 요소가 하나도 없는지 알려주는 함수

c.insert( d, b, e ) // b, e 범위의 반복자가 가리키는 요소들을 복사해서 d 바로 앞에 삽입시킨다.

c.erase( iterator )

c.erase( b, e ) // 컨테이너 c로부터 iterator가 기리키는 요소, 또는 (b, e ) 가 나타내는 범위의 요소들을 삭제한다. 이 연산은 list에 대해서는 빠르지만, vector 및 string에 대해서는 느릴 수 있습니다. 왜냐하면, 이러한 타입에 대해서는 삭제된 요소 다음에 있는 모든 요소들을 복사하는 작업이 필요하기 때문입니다. list에 대해서는 삭제된 요소에 대한 반복자들만 무효화되지만, vector와 string에 대해서는 삭제된 요소의 다음에 위치한 요소들을 가리키는 모든 반복자들이 무효화 됩니다.

c.push_back(t) // c의 끝을 가리키는 요소에 값 t를 추가합니다.


임의 접근을 지원하는 컨테이너들과 string 타입은 다음의 기능을 제공합니다. 

c[n] // 컨테이너 c로부터 n의 위치에 있는 문자를 얻습니다.



반복자 연산

*it // 반복자 iterator를 역참조하여 iterator가 가리키는 위치에 저장된 값을 얻습니다. 이 연산은 보통 it->x 로 사용이됩니다.

++it, it++ 반복자를 증가시켜 컨테이너의 다음 요소를 가리키게 합니다.

b == e, b != e // 두 반복자가 동일한지, 동일하지 않은지 비교합니다.


'NativeCode > C++ STL' 카테고리의 다른 글

Algorithm  (0) 2010.03.18
list  (0) 2010.03.18
stl C++ Exception Class  (0) 2010.03.18
String  (0) 2010.03.18
Vector  (0) 2010.03.18

+ Recent posts