在遍歷C++ unordered_map時,可以使用迭代器來實現高效遍歷。以下是一種常用的方法:
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<int, std::string> myMap = {{1, "one"}, {2, "two"}, {3, "three"}};
for(auto it = myMap.begin(); it != myMap.end(); ++it) {
std::cout << "Key: " << it->first << " Value: " << it->second << std::endl;
}
return 0;
}
在這個例子中,我們使用迭代器it
來遍歷unordered_mapmyMap
。通過it->first
和it->second
可以訪問鍵和值。這種方法避免了使用at()
或[]
方法,因為這些方法會導致unordered_map的重新哈希,降低遍歷效率。
除了使用迭代器,C++11引入了范圍for循環,也可以用來遍歷unordered_map:
for(const auto& pair : myMap) {
std::cout << "Key: " << pair.first << " Value: " << pair.second << std::endl;
}
這種方法更加簡潔明了,但在某些情況下可能會影響性能。因此,根據實際情況選擇合適的遍歷方法來高效地遍歷C++ unordered_map。