인프런 커뮤니티 질문&답변

김주호님의 프로필 이미지
김주호

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

문제해설 교안

교안 79페이지 질문이요!

작성

·

211

0

교안 79페이지 2차원 배열 예제에서

 

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

vector<int> vv;

v.push_back(vv); }.

이 코드가 하는 역할이 어떤건가요??

 

답변 1

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 주호님 ㅎㅎ 해당 설명을 좀 변경했는데요.

vector를 이용한 2차원 배열을 만드는 3가지 방법입니다.  

#include<bits/stdc++.h>
using namespace std;    
vector<vector<int>> v;  
vector<vector<int>> v2(10, vector<int>(10, 0));
vector<int> v3[10];
int main(){ 
   
for(int i = 0; i < 10; i++){
       
vector<int> temp;
        v.push_back(temp);
    }
   
return 0;

v는 vector안의 vector가 들어가 있는 2차원 배열 타입을 선언합니다. 

그 이후 v에 temp라는 vector를 push_back해서 2차원 배열을 만듭니다. 

v2는 10 * 10 짜리 크기의 2차원배열을 바로 만듭니다. 0으로 초기화까지 한 것을 볼 수 있습니다. 


v3는 10개 짜리 배열을 선언한 것을 볼 수 있습니다. 이는 v와 똑같은 2차원배열입니다. v 같은 경우 vector 10개를 담으니까요. 

 그림으로 나타내면 다음과 같습니다. 

image

그림도 그려봤는데요. ㅎㅎ

혹시 이해가 되실까요?

감사합니다.

김주호님의 프로필 이미지
김주호
질문자

답변 감사합니다! 그러면 지금 설명 코드에서 v라는 벡터는 값이 비어있는 2차원배열이라고 생각하면 될까요??

큰돌님의 프로필 이미지
큰돌
지식공유자

네 맞습니다 ㅎㅎ

김주호님의 프로필 이미지
김주호

작성한 질문수

질문하기