> 백엔드 개발 > C++ > C에서 중첩 맵을 효율적으로 반복하려면 어떻게 해야 합니까?

C에서 중첩 맵을 효율적으로 반복하려면 어떻게 해야 합니까?

Linda Hamilton
풀어 주다: 2024-12-08 08:54:11
원래의
457명이 탐색했습니다.

How Can I Efficiently Iterate Through Nested Maps in C  ?

C에서 여러 지도 반복

C에서 여러 수준의 중첩된 지도를 탐색하는 것은 어려운 작업이 될 수 있습니다. 이 가이드는 지도의 지도라고 알려진 지도의 컨테이너를 통한 반복을 위한 포괄적인 솔루션을 제공합니다.

이 접근 방식은 C 11에 도입된 강력한 범위 기반 for 루프를 활용합니다. 코드를 자세히 살펴보겠습니다.

std::map<std::string, std::map<std::string, std::string>> mymap;

for (auto const &ent1 : mymap) {
  for (auto const &ent2 : ent1.second) {
    std::cout << ent1.first << " " << ent2.first << " " << ent2.second << std::endl;
  }
}
로그인 후 복사

외부 루프에서 ent1은 ent1.first가 첫 번째 수준 키를 나타내는 키-값 쌍을 보유합니다. 내부 루프는 또 다른 맵인 ent1.second 값을 통해 반복되며 ent2는 두 번째 수준 맵의 키와 값에 대한 액세스를 제공합니다.

참조 변수의 명시적 정의 사용을 선호하는 경우 각 변수의 목적을 명확히 하기 위해 external_key, inner_key, inner_value와 같은 임시 변수를 도입할 수 있습니다.

C 17은 구조화된 바인딩을 도입하여 간결한 구문을 제공합니다. 중첩된 요소에 액세스합니다. 다음 코드 조각은 이 기능을 보여줍니다.

for (auto const &amp;[outer_key, inner_map] : mymap) {
  for (auto const &amp;[inner_key, inner_value] : inner_map) {
    std::cout << outer_key << " " << inner_key << " " << inner_value << std::endl;
  }
}
로그인 후 복사

이 예에서 외부 키와 값은 내부 키와 값과 함께 루프 본문 내에서 직접 액세스할 수 있습니다.

By 이러한 기술을 활용하면 C에서 여러 수준의 중첩 맵을 쉽게 반복할 수 있습니다. 즐거운 코딩하세요!

위 내용은 C에서 중첩 맵을 효율적으로 반복하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿