C++에서 맵을 반복하는 방법

How Iterate Over Map C



이 빠른 자습서에서는 C++의 맵에서 반복하는 방법을 볼 것입니다.

C++에서 맵을 반복하는 방법에는 여러 가지가 있습니다. 최신 버전의 C++에서는 C++에서 맵을 반복하는 고급 방법이 있습니다.







하나하나 살펴보겠습니다.



stp::map과 함께 for 루프 사용하기

|_+_|라는 이름의 지도를 만들었습니다. 키-값 쌍을 삽입했습니다.



<~을위한>
#포함하다
#포함하다
#포함하다
#포함하다
#포함하다
사용 네임스페이스시간;
정수기본() {
// 맵 초기화
지도>'인도','델리'));
국가자본지도.끼워 넣다(<문자열, 문자열>('네팔','카트만두'));
국가자본지도.끼워 넣다(<문자열, 문자열>('중국','베이징'));
국가자본지도.끼워 넣다(<문자열, 문자열>('프랑스','파리'));

// for 루프에서 iterator를 사용하여 반복
~을위한 (자동이터=국가자본지도.시작하다();이터!=국가자본지도.();이터++)
{
시간::비용 <<이터->첫 번째// 액세스 키
<< ':'
<<이터->두번째// 접근 값
<<시간::;
}
반품 0;
}
</~을위한>
산출:
<~을위한>
중국:베이징
프랑스:파리
인도:델리
네팔:카트만두
</~을위한>

보시다시피 for 루프를 사용하여 country:capital(key:value)을 인쇄했습니다.

참고로 |_+_|를 사용했습니다. 가독성 때문에 맵 반복기에 대한 유형 지정자. |_+_|를 사용할 수 있습니다. 그것도 명시적으로.
메모: 출력이 보이면 키를 기준으로 오름차순으로 정렬됩니다. std::map 은 Comparator(버전 C++11 이상)가 제공되는 정렬된 연관 컨테이너이기 때문입니다. 비교기를 제공하지 않았기 때문에 C++에서는 문자열에 기본 비교기를 사용했습니다.

stp::map과 함께 while 루프 사용하기

for 루프 대신 while 루프를 사용할 수도 있습니다.

<~을위한>
#포함하다
#포함하다
#포함하다
#포함 >
사용 네임스페이스시간;
정수기본() {
// 맵 초기화
지도<문자열, 문자열>국가자본지도;
// 맵에 다른 요소 삽입
국가자본지도.끼워 넣다(<문자열, 문자열>('인도','델리'));
국가자본지도.끼워 넣다(<문자열, 문자열>('네팔','카트만두'));
국가자본지도.끼워 넣다(<문자열, 문자열>('중국','베이징'));
국가자본지도.끼워 넣다(<문자열, 문자열>('프랑스','파리'));


// 맵에 대한 반복자를 생성하고 begin으로 초기화합니다.
자동이터=국가자본지도.시작하다();
// while 루프에서 iterator를 사용하여 반복
동안 (이터!=국가자본지도.())
{
시간::비용 <<이터->첫 번째// 액세스 키
<< ':'
<<이터->두번째// 접근 값
<<시간::;
이터++;
}
반품 0;
}
</~을위한>
산출:
<~을위한>
중국:베이징
프랑스:파리
인도:델리
네팔:카트만두
</~을위한>

범위 기반 for 루프 사용(C++11 버전 이상)

C++11 버전을 사용하는 경우 C++에서 맵을 반복하는 가장 우아한 방법입니다. 전통적인 큐브 루프를 피하고 대신 사용할 수 있습니다.

<~을위한>
#포함하다
#포함하다
#포함하다

사용 네임스페이스시간;
정수기본() {
// 맵 초기화
지도<문자열, 문자열>국가자본지도;
// 맵에 다른 요소 삽입
국가자본지도.끼워 넣다(<문자열, 문자열>('인도','델리'));
국가자본지도.끼워 넣다(<문자열, 문자열>('네팔','카트만두'));
국가자본지도.끼워 넣다(<문자열, 문자열>('중국','베이징'));
국가자본지도.끼워 넣다(<문자열, 문자열>('프랑스','파리'));


// for 루프에서 iterator를 사용하여 반복
~을위한 (상수 자동 &:국가자본지도) {
비용 <<그.첫 번째 << ':' <<그.두번째<<'N';
}

반품 0;
}
</~을위한>
산출:
중국:베이징
프랑스:파리
인도:델리
네팔:카트만두

키-값 쌍으로 범위 기반 for 루프 사용(C++17 버전 이상)

이 버전은 C++17부터 지원되며 맵을 반복하는 보다 유연한 방법을 제공합니다. 훨씬 더 읽기 쉬운 솔루션을 제공하는 지도에서 키-값 쌍에 명시적으로 액세스할 수 있습니다.

<~을위한>
#포함하다
#포함하다
#포함하다

사용 네임스페이스시간;
정수기본() {
// 맵 초기화
지도<문자열, 문자열>국가자본지도;
// 맵에 다른 요소 삽입
국가자본지도.끼워 넣다(<문자열, 문자열>('인도','델리'));
국가자본지도.끼워 넣다(<문자열, 문자열>('네팔','카트만두'));
국가자본지도.끼워 넣다(<문자열, 문자열>('중국','베이징'));
국가자본지도.끼워 넣다(<문자열, 문자열>('프랑스','파리'));


// for 루프에서 iterator를 사용하여 반복
~을위한 (상수 자동& [핵심 가치] :국가자본지도) {
비용 <<열쇠<< ':' <<<< 'N';
}

반품 0;
}
</~을위한>
산출:
중국:베이징
프랑스:파리
인도:델리
네팔:카트만두

이것이 C++에서 맵을 반복하는 방법에 관한 것입니다. 즐거운 코딩!