vector< 자료형 > 변수명 의 형식으로 선언하며
자동으로 메모리가 할당되는 동적 배열이다.
stack의 구조와 비슷한 구조를 띄고 있다.
#include <iostream>
#include <array>
#include <vector>
using namespace std;
int main() {
int s = 10;
vector<int> vec0(s);
// 동적으로 크기 할당 가능
for (int i = 0; i < vec0.size(); i++)
cout << vec0[i] << endl;
// 초기화를 하지 않아도 0으로 초기화된다
cout << endl;
vector<int> vec1(s, 1);
vec1.resize(5, 2);
// 크기와를 바꾸고 초기화할 값을 입력할 수 있음
for (int num : vec1)
cout << num << endl;
cout << endl;
vector<int> vec2;
for (int i = 0; i < s; i++) {
vec2.push_back(i);
// vec2는 크기를 할당하지 않았지만 push_back()을 통해 마지막 원소에 값을 넣음
cout << vec2[i] << endl;
cout << vec2.size() << endl;
cout << vec2.data() << endl;
// vector가 할당하는 주소값을 나타내며 할당하는 크기가 바뀔수록 주소값이 달라지는걸 볼 수 있음
}
vec2.pop_back();
cout << vec2.size() << endl;
vec2.reserve(1000);
// 할당하는 주소를 미리 지정해준다.
cout << vec2.front() << endl;
// vector의 첫번째 요소 반환
cout << vec2.back() << endl;
// vector의 마지막 요소 반환
return 0;
}
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
000002227F1C6850
1
2
000002227F1D7460
2
3
000002227F1D77D0
3
4
000002227F1D72D0
4
5
000002227F1D28E0
5
6
000002227F1D28E0
6
7
000002227F1D2520
7
8
000002227F1D2520
8
9
000002227F1D2520
9
10
000002227F1DCCD0
9
0
8
이외에도 std::array의 비교연산, vector.swap()또한 사용할 수 있다.