■ container<T>::iterator,container<T>::const_iterator
이 컨테이너에 대한 반복자의 타입명
■ container<T>::size_type
이 컨테이너의 인스턴스 가질 수 있는 최대 사이즈 값을 저장할 수 있는 타입의 이름
■ 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(b, e)
컨테이너 c로부터 it이 가리키는 요소, 또는 [b, e)가 나타내는 범위의 요소들을 삭제 한다. 이 연산은 list에 대해서는 빠르지만,
vector 및 string에 대해서는 느릴수 있다. 왜냐하면 이러한 타입에 대해서는 삭제된 요소 다음에 있는 모든 요소들을 복사하는
작업이 필요하기 때문이다. list에 대해서는 삭제된 요소(들)에 대한 반복자들만 무효화 되지만, vector와 string에 대해서는
삭제된 요소의 다음에 위치한 요소들을 가리키는 모든 반복자들이 무효화 된다.
■ c.push_back(t)
c의 끝을 가리키는 요소에 값 t를 추가한다.
■ c.begin(), c.end()
컨테이너의 첫 번째 및(하나 지난) 마지막 요소를 가리키는 반복자
■ c.rbegin(), c.rend()
컨테이너의 요소를 역순으로 접근할 수 있도록 컨테이너의 마지막 및 (하나 이전의) 첫번째 요소를 가리키는 반복자
■ c[n]
컨테이너 c로부터 n의 위치에 있는 문자를 얻는다.
# string 타입
■ s.substr(i,j)
[i, i+j) 범위의 인덱스에 해당하는 s의 문자들을 복사하여 새로운 string을 생성한다.
■ getline(is, s)
is로부터 한 라인의 입력을 받아들여 s에 저장한다.
■ s += s2
s를 s+s2의 값으로 변경한다.
# vector 타입
■ v.reserve(n)
n개의 요소를 담을 수 있는 공간을 확보 한다. 하지만, 초기화하지는 않는다. 이 연산은 컨테이너의 크기를 변화시키지는 않고
반복적인 insert나 push_back으로 인한 빈번한 메모리 할당을 막기 위해 사용한다.
■ v.resize(n)
v의 사이즈를 n이 되도록 만든다. 만약 n이 현재 v의 사이즈보다 작다면, n이하의 요소들은 vector에서 제거된다.
만약 n이 현재 사이즈보다 큳면, 새로운 요소들이 v에 추가되고 v의 타입에 의해 적당한 값으로 초기화된다.
# list 타입
■ l.sort(), l.sort(cmp)
list의 타입에 대한 < 연산자를 사용하거나, cmp 함수를 사용하여 l의 요소들을 정렬한다.