#include <vector>
using namespace std;
vector<[type]> [name]
// 비어있는 정수형 타입 vector인 v1를 생성
vector<int> v1;
// 기본값으로 초기화된 10개의 원소를 가지는 vector v2 생성
vector<int> v2(10);
// 'A'로 초기화된 5개의 원소를 가지는 vector v3 생성
vector<char> v3(5, 'A');
// 'A', 'B', 'C' 원소를 가지는 vector v4 생성
vector<char> v4 = { 'A', 'B', 'C' };
vector<int> v1(5, 7);
vector<int> v2 = { 7, 7, 7, 7, 7 };
vector<int> v3 = { 7, 7, 7, 8 };
if (v1 == v2) // true
cout << "동일한 벡터";
if (v2 < v3) // true
cout << "v3이 v2보다 큰 벡터";
1) element access & capacity
function | description |
---|---|
v[index] | index에 해당하는 원소 반환 |
v.at(index) | index에 해당하는 원소 반환 |
v.front() | 첫번째 원소 반환 |
v.back() | 마지막 원소 반환 |
v.size() | vector v의 크기 반환 |
v.empty() | 비어있으면 true, 그렇지 않으면 false 반환 |
vector<int> v1 = { 10, 20, 30, 40, 50 };
vector<int> v2;
cout << v1[1]; // 20
cout << v1.at(2); // 30
cout << v1.front(); // 10
cout << v1.back(); // 50
cout << v1.size(); // 5
cout << v2.size(); // 0
if (v2.empty()) // true
cout << "v2 size is 0";
2) iterators
function | description |
---|---|
v.begin() | 첫번째 원소를 가리키는 iterator |
v.end() | 마지막 원소의 다음을 가리키는 iterator |
v.rbegin() | 마지막 원소를 가리키는 iterator |
v.rend() | 첫번째 원소의 이전을 가리키는 iterator |
iterator(반복자) : 컨테이너에 저장된 요소를 반복적으로 순회하여 각 요소에 접근할 수 있도록 하는 객체
vector<int> v = { 10, 20, 30, 40, 50, 60, 70, 80 };
vector<int>::iterator iter;
for (iter = v.begin(); iter != v.end(); iter++)
{
cout << *iter << " "; // output : 10 20 30 40 50 60 70 80
}
vector<int>::reverse_iterator r_iter;
for (r_iter = v.rbegin(); r_iter != v.rend(); r_iter++)
{
cout << *r_iter << " "; // output : 80 70 60 50 40 30 20 10
}
3) modifiers (수정)
function | description |
---|---|
v.push_back(x) | 원소 x를 마지막 원소 뒤에 추가 |
v.pop_back() | 마지막 원소 제거 |
v.insert(iter, x) | 원소 x를 iter 위치에 삽입 |
v.insert(iter, n, x) | n개의 원소 x를 iter 위치에 삽입 |
v.erase(iter) | iter 위치의 원소 제거 |
v.erase(iter1, iter2) | iter1 부터 iter2 이전까지 위치의 원소 제거 |
v.clear() | 모든 원소 제거 |
vector<int> v = { 10, 20, 30 };
v.push_back(40); // 10 20 30 40
v.push_back(50); // 10 20 30 40 50
v.pop_back(); // 10 20 30 40
v.insert(v.begin(), 60); // 60 10 20 30 40
v.insert(v.begin() + 3, 70); // 60 10 20 70 30 40
v.insert(v.end(), 3, 50); // 60 10 20 70 30 40 50 50 50
v.erase(v.begin() + 5); // 60 10 20 70 30 50 50 50
v.erase(v.begin() + 4, v.end()); // 60 10 20 70