Vector

#include <vector>

// 벡터는 임의 접근에 대해 최적화되어 있다. 최적화의 대가로, 벡터의 끝이 아닌 다른 위치에 요소를 삽입하고 삭제하는 작업은 매우 느리다.

vector<int> vec_int; // int 형의 빈 vector 생성

vec_int.begin() // vec_int의 첫 번째 요소를 나타내는 값을 리턴
vec_int.end() // vec_int의 마지막 요소를 나타내는 값을 리턴

vec_int.push_back( e ) // vector에 e로 초기화된 요소 하나를 추가

vec_int[ i ] // i 위치에 저장된 값을 리턴

vec_int.size() // vec_int 에 들어있는 요소들의 개수를 리턴

vec_int.erase( vec_int.begin() + i ) // 시작위치부터 i번째 떨어져 있는 값을 지움


반복자

  • 컨테이너와 컨테이너 안에 있는 요소를 구별시킵니다.
  • 그 요소의 값을 확인할 수 있습니다.
  • 컨테이너 안에 있는 요소들 간에 이동을 할 수 있는 연산을 제공합니다.
  • 컨테이너가 효과적으로 처리할 수 있는 방식으로 가용한 연산들을 한정시킵니다.


// 반복자 미 사용

forvector<Student_info>::size_type i = 0; i != students.size(); ++i )

cout << students[ i ].name << endl;


// 반복자 iterator 사용

forvector<Student_info>::const_iterator iter = students.begin(); iter != students.end(); ++iter )

cout << ( iter->name << endl;


v.reserve( n ) // n 개의 요소를 담을 수 있는 공간을 확보합니다. 하지만, 초기화하지 않습니다. 이 연산은 컨테이너의 크기를 변화시키지는 않습니다. 단지 반복적인 insert나 push_back으로 인한 빈번한 메모리 할당을 막기 위해서 사용합니다.

v.resize( n ) // v의 사이즈를 n이 되도록 만듭니다. 만약 n이 현재 v의 사이즈보다 작다면, n 이하의 요소들은 vector에서 제거됩니다. 만약 n이 현재 사이즈보다 크다면, 새로운 요소들이 v에 추가되고 v의 타입에 의해 적당한 값으로 초기화 됩니다.

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

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

+ Recent posts