vector
시퀸스 컨테이너로 배열과 비슷하지만 동적으로 데이터를 추가할 수 있고, 크기가 자동으로 늘어난다는 장점이 있다.
Vector Member 함수
함수 |
설명 |
반환 값 |
push_back(value) |
vector 끝에 value 를 넣는다 |
|
pop_back() |
vector 의 마지막 원소를 삭제한다 |
|
begin() |
vector 의 첫번째 원소를 가르키는 iterator를 가져온다 |
Iterator |
end() |
vector 의 마지막 원소 다음을 가르키는 iterator를 가져온다. |
Iterator |
clear() |
vector 내 모든 원소를 삭제한다. |
|
size() |
vector 에 저장된 원소의 개수를 반환한다. |
int |
empty() |
vector 가 비었는지 확인한다. |
bool |
insert(iterator, value) |
해당 iterator가 가르키는 위치에 value를 삽입한다. |
|
insert(iterator, begin, end) |
해당 iterator가 가르키는 위치에 특정 iterator 가르키는 begin 에서 end 까지 원소를 삽입한다. |
|
erase(iterator) |
해당 iterator가 가르키는 원소를 삭제한다. 반환 값으로 다음 iterator 를 반환한다. |
Iterator |
erase(begin, end) |
begin 에서 end 범위까지 원소를 삭제한다. 반환 값으로 삭제한 마지막 원소 다음 iterator를 가져온다. |
Iterator |
assign(n, value) |
vector 에 value를 n 개 만큼 할당한다. 이전 값이 있더라도 초기화 되고 재할당된다. |
|
assign(begin, end) |
vector 값을 특정 iterator 가르키는 begin 에서 end 범위 값으로 할당한다 이전 값이 있더라도 초기화되고 재할당된다. |
|
at(index) |
index가 가르키는 value를 가져온다. |
|
데이터 삽입 함수
push_back 함수
push_back 함수는 vector 마지막에 원소를 넣어준다.
#include <iostream> #include <vector> using namespace std;
int main(void) { vector<int> v;
v.push_back(1); v.push_back(2); v.push_back(3);
for (int a : v) { cout << a << " "; } cout << endl;
return 0; }
|
insert 함수
- vector 의 5번째 위치에 값 50을 삽입한다.
#include <iostream> #include <vector> using namespace std;
int main(void) { vector<int> v;
for (int i = 0; i < 10; i++) { v.push_back(i + 1); }
v.insert(v.begin() + 4, 50);
for (int a : v) { cout << a << " "; } cout << endl;
return 0; }
|
insert 함수 - iterator를 이용한 데이터 삽입
#include <iostream> #include <vector> using namespace std;
int main(void) { vector<int> v; vector<int> v2;
for (int i = 0; i < 10; i++) { v.push_back(i + 1); }
for (int i = 0; i < 5; i++) { v2.push_back(i + 20); }
v.insert(v.begin() + 5, v2.begin(), v2.end());
for (int a : v) { cout << a << " "; } cout << endl;
return 0; }
|
1 2 3 4 5 20 21 22 23 24 6 7 8 9 10
|
데이터 삭제 함수
erase
#include <iostream> #include <vector> using namespace std;
int main(void) { vector<int> v; vector<int> v2;
for (int i = 0; i < 10; i++) { v.push_back(i + 1); }
v.erase(v.begin() + 7);
for (int a : v) { cout << a << " "; } cout << endl;
return 0; }
|
erase - iterator를 이용한 데이터 삭제
#include <iostream> #include <vector> using namespace std;
int main(void) { vector<int> v; vector<int> v2;
for (int i = 0; i < 10; i++) { v.push_back(i + 1); }
v.erase(v.begin() + 4, v.begin() + 6);
for (int a : v) { cout << a << " "; } cout << endl;
return 0; }
|
assign 함수
보통은 다른 자료 구조를 vector 로 변환할 때 많이 사용한다.
#include <iostream> #include <set> #include <vector> using namespace std;
int main(void) { vector<int> v; set<int> s;
for (int i = 0; i < 8; i++) { s.insert(i + 1); }
v.assign(s.begin(), s.end());
for (int a : v) { cout << a << " "; } cout << endl;
return 0; }
|