Choosing the right container in C++ can significantly impact the performance and efficiency of your program. The `std::unordered_map` is a great option when you need a mapping from keys to values without caring about the order of elements. It's implemented as a hash table, allowing for average constant-time complexity for insertions, deletions, and lookups.
When should you use `std::unordered_map`? Here are some key points:
Below is an example demonstrating how to use `std::unordered_map` in C++:
#include <iostream>
#include <unordered_map>
#include <string>
int main() {
std::unordered_map<std::string, int> ageMap;
// Inserting elements
ageMap["Alice"] = 30;
ageMap["Bob"] = 25;
ageMap["Charlie"] = 35;
// Accessing elements
std::cout << "Alice's age: " << ageMap["Alice"] << std::endl;
// Iterating through the unordered_map
for (const auto& pair : ageMap) {
std::cout << pair.first << " is " << pair.second << " years old." << std::endl;
}
return 0;
}
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?