C에서 중첩 맵을 통해 반복
C에서 중첩 맵이 있는 시나리오를 생각해 보세요. 특히 맵은 std::map
m["name1"]["value1"] = "data1"; m["name1"]["value2"] = "data2"; m["name2"]["value1"] = "data1"; m["name2"]["value2"] = "data2"; m["name3"]["value1"] = "data1"; m["name3"]["value2"] = "data2";
이 중첩 맵을 효과적으로 반복하고 다양한 값에 액세스하려면 다음 기술을 활용할 수 있습니다.
C 11 Ranged 사용 for 루프:
C 11을 사용하면 범위 기반 for 루프를 사용하여 반복 프로세스. 이 접근 방식은 불필요한 복사를 방지하고 간결한 구문을 제공합니다.
std::map<std::string, std::map<std::string, std::string>> mymap; for (auto const &ent1 : mymap) { // ent1.first is the first key for (auto const &ent2 : ent1.second) { // ent2.first is the second key // ent2.second is the data } }
참조 변수의 명시적 정의 사용:
또는 참조 변수를 명시적으로 정의하여 가독성을 높일 수 있습니다. 키와 값에 대해. 이 접근 방식은 더 많은 코드를 생성하지만 명확성을 높이기 위해 변수를 명시적으로 정의합니다.
for (auto const &ent1 : mymap) { auto const &outer_key = ent1.first; auto const &inner_map = ent1.second; for (auto const &ent2 : inner_map) { auto const &inner_key = ent2.first; auto const &inner_value = ent2.second; } }
C 17에서 구조적 바인딩 사용:
C 17에서 구조적 바인딩은 다음을 제공합니다. 중첩된 맵을 반복하는 더욱 간단하고 간결한 방법입니다.
for (auto const &[outer_key, inner_map] : mymap) { for (auto const &[inner_key, inner_value] : inner_map) { // Access outer_key, inner_key and inner_value directly } }
위 내용은 C에서 중첩 맵을 효율적으로 반복하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!