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

이동규님의 프로필 이미지
이동규

작성한 질문수

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

4-A

4-A map 관련 질문입니다.

작성

·

202

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

안녕하세요 강사님,

 

제가 map<int, vector<vector<int>>> ret_v; 의 형태에 대해 이해가 잘 안됩니당

 

강의에서 설명해주신대로 벡터의 벡터를 이용하는것 까지는 이해를 했습니다.

근데 출력부분이 왜

for(int a : ret_v[ret][0]){

cout << a << " ";

}

이렇게 작성 되는지가 이해가 안가네용 ...

 

제 생각엔 ret_v[ret]면 될거같은데 [0]이 왜 있고 무슨의미인지 이해가 안되네요

 

 

답변 2

0

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

안녕하세요 동규님 ㅎㅎ

제가 map<int, vector<vector<int>>> ret_v; 의 형태에 대해 이해가 잘 안됩니당

 >>

int 라는 키에

2차원 배열이 들어가 있는 것입니다.

강의에서 설명해주신대로 벡터의 벡터를 이용하는것 까지는 이해를 했습니다.

근데 출력부분이 왜

for(int a : ret_v[ret][0]){

cout << a << " ";

}

>> ret_v[ret]은 해당 2차원 배열을 나타내죠?

그 2차원 배열 중에 첫번째 배열을 출력해야 해서 그렇습니다.

{{1,2,3}, {4,5,6}, {}, {}}

이런식으로 되어있는 것중

1, 2, 3을 출력하기 위함입니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴이에요.

ret_v는 map>> 형태의 변수인거죠? 이 변수는 키 값에 대응하는 값으로 이루어져 있습니다.

ret_v[ret]은 ret_v에서 ret이라는 키 값에 해당하는 벡터 벡터를 의미합니다.

그리고 [0]은 해당 벡터 벡터에서 첫 번째 벡터를 의미합니다.

따라서, ret_v[ret][0]은 ret_v에서 ret이라는 키 값에 해당하는 벡터 벡터 중 첫 번째 벡터를 의미하게 되는 것이죠.

그래서 출력 부분에서는 for문을 사용하여 ret_v[ret][0]에 포함된 모든 값들을 출력하는 것입니다.

만약 ret_v[ret]만 출력한다면, 벡터 벡터 전체가 출력되기 때문에 원하는 값을 개별적으로 출력하기 위해서 ret_v[ret][0]을 사용한 것이에요.

이해가 되셨는지요? 추가로 궁금한 점이 있다면 언제든지 물어보세요!

이동규님의 프로필 이미지
이동규

작성한 질문수

질문하기