2차원 Vector을 초기화하는 방법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include<iostream>
#include<vector>
int main() {
//첫 번째 5는 vector를 원소로 가지고 있는 컨테이너의 초기화
//두 번째 5는 int를 원소로 가지고 있는 컨테이너의 초기화
//세 번째 1은 int를 원소로 가지고 있는 컨테이너의 값을 1로 초기화
std::vector<std::vector<int>> v(5, std::vector<int>(5, 1));
for (const auto& i : v) {
for (const auto j : i) {
std::cout << j << " ";
}
std::cout << "\n";
}
}
|
vector 컨테이너를 가지는 vector를 생성과 동시에 초기화하는 방법은 위와 같다.
assign() 메서드를 사용해서 초기화하는 방법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#include<iostream>
#include<vector>
std::vector<std::vector<int>> g_v;
int main() {
//첫번 째 5는 vector를 원소로 가지고 있는 컨테이너의 초기화
//두번 째 5는 int를 원소로 가지고 있는 컨테이너의 초기화
//세번 째 1은 int를 원소로 가지고 있는 컨테이너의 값을 1로 초기화
g_v.assign(5, std::vector<int>(5, 1));
for (const auto& i : g_v) {
for (const auto j : i) {
std::cout << j << " ";
}
std::cout << "\n";
}
}
|
생성과 동시에 초기화가 아닌 나중에 들어오는 입력값에 따라 초기화를 진행해야 할 경우가 생길 수 있다.
그런 경우에는 assign() 메서드를 사용하면 되며 위 방법과 큰 차이는 없다.
후기
알고리즘 문제를 풀 때 이와 같은 방법을 사용해야 할 때가 있는대 매번 까먹는 거 같아서 정리 겸 글을 썼다.
'프로그래밍 > Modern C++' 카테고리의 다른 글
[C++] RAII(Resoucre Acquisition Is Initialization) (0) | 2020.06.20 |
---|---|
[C++] Vector의 메모리 할당 방식 (0) | 2020.06.18 |
[C++] 용어 정리(1) 객체지향 철학, 객체지향 디자인 원칙(SOLID) (0) | 2020.03.22 |
[C++] 스트림 반복자(stream iterator)-입력/출력 (0) | 2020.03.05 |
[C++] 연관 컨테이너 맵(map) (0) | 2020.02.18 |