티스토리 뷰
//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++ STL] 동적 2차원 배열 사용법(vector) (3) | 2015.08.24 |
---|---|
[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 |
- Total
- 410,836
- Today
- 13
- Yesterday
- 53
- Avisynth
- AVS
- C++
- girls generation
- 다운
- 인코딩
- sudoku
- solver
- 라데온
- 풀이
- 자작
- 유리
- 풀기
- 수도쿠
- 테이크LTE
- 알고리즘
- 테티이
- png
- 써니
- cs4
- SNSD
- 가사
- 소녀시대
- Sunny
- TAKE LTE
- Logo
- Filter
- 태그를 입력해 주세요.
- 크로스파이어
- 소시