C++에서 동적으로 할당되는 메모리를 가지는 배열 형태를 사용하기 위한 STL의 container 중 하나이다.
#include <vector>
vector<int> v;
vector<int> v(5); // 0으로 5개 초기화
vector<int> v1({1,1,1,1,1,1});
vector<int> v3 = {1,1,1,1,1};
vector<int> v(5, 2); // 2로 5개 초기화
vector<int> v2(v1); //v1 vector 복사
vector<int> v1;
for (int i = 1; i <= 5; i++)
v1.push_back(i);
vector<int> v1;
v1.assign(5,2); // 2의 값으로 5개 할당
vector<int> v2(5); // 5개 공간 할당
fill(v2.begin(), v2.end(), 3) // 3을 v2 공간안에 모두 할당
// 기존에 할당되어있던 값이 있으면 초기화 후 재할당한다.
초기화된 1차원 vector를 넣어주는 방식으로 2차원 vector를 초기화 한다.
fill(v.begin(), v.end(), vector<int>(v.size(), 10));
// 10*10의 0으로 채워진 vector
vector<vector<int>> v2(10, vector<int>(10, 0));
for (auto i = v1.begin(); i != v1.end(); ++i)
cout << *i << " ";
// 반대 방향으로 아이템을 출력
// rbegin(), rend()는 역순(reverse)의 Iterator를 리턴
cout << "\n";
for (auto ir = v1.rbegin(); ir != v1.rend(); ++ir)
cout << *ir << " ";
// iterator 연산자 사용
vector<int>::iterator ir;
for (ir = v1.begin(); ir < v1.end(); ir++)
cout << *ir << " ";
// 배열처럼 Vector[index] 으로 아이템 출력
cout << "\n";
for (int i = 0; i < v1.size(); i++)
cout << v1[i] << " ";
// Vector.at(index)로 아이템 출력
cout << "\n";
for (int i = 0; i < v1.size(); i++)
cout << v1.at(i) << " ";
https://m.blog.naver.com/roxy2131/222129522824
위에 나와있듯이 벡터에 값 할당
vector<int> v1;
v1.assign(5,2); // 2의 값으로 5개 할당
주어진 사이즈만큼 vector 메모리 공간 확보. 0으로 초기화되지는 않는다.
v.reserve(15);
실질적으로 벡터의 사이즈를 할당하는 함수.
역시 0으로 초기화되지 않음. 특정 사이즈로 벡터를 초기화하고 싶을 때 자주 사용됨
v.resize(15);
원소는 제거하고 메모리는 그대로 유지 (size = 0, capacity는 그대로)
v.clear();
원하는 iterator 인덱스의 값을 지운다.
마지막 값을 지우고 싶다면
v.erase(v.end()-1);
위와 같이 할 수 있다.
원하는 값을 원하는 idx에 삽입한다.
vector<int> v(5);
for (int i = 0; i < 5; i++) {
v[i] = i;
}
v.erase(v.begin() + 1);
for (int i = 0; i < v.size(); i++) {
cout << " " << v[i];
}
cout << "\n";
v.insert(v.begin() + 2, 0);
for (int i = 0; i < v.size(); i++) {
cout << " " << v[i];
}
0 2 3 4
0 2 0 3 4
#include <algorithm>
sort(v.begin(), v.end()); // 오름차순
sort(v.rbegin(), v.rend()); // 내림차순 (오름차순의 역순)
sort(v3.begin() , v3.end(),less<>()); // 오름차순
sort(v3.begin() , v3.end(), greater<>()); // 내림차순
출력
https://coding-factory.tistory.com/596
멤버함수
https://blockdmask.tistory.com/70