Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Nnnnnnnnn

Vector 2차원 배열 본문

C++

Vector 2차원 배열

와이제인 2017. 12. 31. 01:58

Vector 2차원 배열


 배열을 사용하는 경우는 상당히 많은데, vector를 사용하면 굉장히 편리한 것 같다. C 같은 경우 정적 할당 외에 동적 할당을 하려면 malloc이나 calloc을 사용하는데, C++에서 vector STL을 사용하면 내가 원하는 크기로 매우 간편하게 배열로 사용할 수 있다. 2차원 vector를 생각할 때 컨테이너라고 생각하면 이해하기 쉬울 것 같다. 컨테이너 틀 안에 한 줄 한 줄의 vector 요소들을 담는다고 생각할 수 있다.




int k;

cin >> k;

vector< vector<int> > tmp;     =====>   2차원 vector 생성

for(int i=0; i<k; i++){

vector<int> a(k);     =====>   입력받은 k 개수만큼의 크기인 1차원 배열을

     tmp.push_back(a);   =====>   2차원 vector 컨테이너 한 줄에 넣는다.

}




만약에 다음과 같은 6개 원소로 이루어진 1차원 배열 각 한 줄 한 줄이 2차원 vector인  vector< vector<int> > plate 에 담겨 있다고 생각하고 이를 출력하고 싶으면,


1 2 3 4 5 6

1 2 3 4 5 7

1 2 3 4 6 7

1 2 3 5 6 7

1 2 4 5 6 7

1 3 4 5 6 7

2 3 4 5 6 7



for (int i = 0; i < plate.size(); i++) {

for (int j = 0; j < 6; j++) {

printf("%d ", plate[i][j]);

}

printf("\n");

}


이와 같이 출력해주면 된다. 또는, 다음과 같이 출력해줘도 나오는 것을 확인할 수 있었다.


for (auto &v : plate) {    

for (int i = 0; i < v.size(); i++) {

printf("%d ", v[i]);

}

printf("\n");

}


'C++' 카테고리의 다른 글

string 함수  (0) 2017.12.30