//int arr[6][5] 배열 선언. 0으로 값 초기화
vector<vector<int> > arr(6, vector<int>(5, 0));
//값 삽입
int serial = 0;
for (int i = 0; i < 6; i++)
for (int j = 0; j < 5; j++)
arr[i][j] = serial++;
//값 출력
for (vector<int> vec : arr) {
for (int n : vec)
printf("%3d ", n);
cout << endl;
}
표준출력:
0 1 2 3 4
5 6 7 8 9
10 11 12 13 14
15 16 17 18 19
20 21 22 23 24
25 26 27 28 29
vector<vector<int> > arr(6, vector<int>(5, 0));
ㄴvector<int>형 벡터 6개(가로 6줄)를 할당 한다는 뜻입니다.
vector<vector<int> > arr(6, vector<int>(5, 0));
ㄴ모든 가로 줄은 5개 짜리 0으로 초기화 된 익명의 int 벡터 배열을 생성하여 초기값으로 넣게 됩니다.
※for(머시기:배열) 이런식의 ranged for loop는 C++11 버전 이상부터 지원합니다.
이렇게 되는데, 바깥 벡터는 vector<int>를 자료형으로 갖는 벡터이구요
안쪽 벡터는 int를 자료형으로 갖는 벡터입니다. <int> >부분 시프트 연산자 >>랑 구분해 주기 위해 중간에 공백을 꼭 넣어주세요.
사용
벡터는 연속된 공간에 할당하는 자료형이기 때문에 일반 배열처럼 사용해도 됩니다.
맨 위 코드에 값 삽입 부분을 보시면 됩니다.
C++11 이상 배열 생성 초간편 방법
vector<vector<int> > arr({
vector<int>( { 0, 1, 2 }),
vector<int>( { 3, 7, 9, 11 }),
vector<int>( { 4, 10, 14, 15 }),
vector<int>( { 0, 4, 5, 6, 7 }),
vector<int>( { 6, 7, 8, 10, 12 }),
vector<int>( { 0, 2, 14, 15 }),
vector<int>( { 3, 14, 15 }),
vector<int>( { 4, 5, 7, 14, 15 }),
vector<int>( { 1, 2, 3, 4, 5 }),
vector<int>( { 3, 4, 5, 9, 13 })
});
'프로그래밍/알고리즘 > C++' 카테고리의 다른 글
[C++] 구간트리 (Binary Indexed Tree) - 구간 최대,최소값 (1) | 2015.08.12 |
---|---|
[C++] 펜윅트리 (이진 인덱스 트리) - 구간합 구해주는 트리 (0) | 2015.07.28 |
[C++] 비트 마스크 배열 (큰 비트 마스크) (0) | 2015.07.27 |
트리 최적 노드 삽입 순서 (0) | 2015.07.09 |
버블 정렬 알고리즘 오름차순 (0) | 2015.07.08 |