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 &[outer_key, inner_map] : mymap) { for (auto const &[inner_key, inner_value] : inner_map) { std::cout << outer_key << " " << inner_key << " " << inner_value << std::endl; } }
이 예에서 외부 키와 값은 내부 키와 값과 함께 루프 본문 내에서 직접 액세스할 수 있습니다.
By 이러한 기술을 활용하면 C에서 여러 수준의 중첩 맵을 쉽게 반복할 수 있습니다. 즐거운 코딩하세요!
위 내용은 C에서 중첩 맵을 효율적으로 반복하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!