Associative containers store keys efficiently. std::map holds sorted key-value pairs; std::set holds unique sorted keys.
map example
std::map<std::string, int> scores;
scores["ada"] = 100;
scores["linus"] = 95;
For frequent lookups without order requirement, std::unordered_map offers average O(1) hashing (also STL).
Important interview questions and answers
- Q: map vs unordered_map?
A:mapkeeps keys sorted (tree);unordered_mapuses hash table—pick based on ordering and performance needs. - Q: operator[] on map?
A: Inserts default-constructed value if key missing—use.at()or.find()when insert is undesired.
Self-check
- What does std::set guarantee about duplicates?
- When prefer unordered_map?
Pitfall: map[key] inserts default values—use .find() or .at() when insertion side effects are unwanted.
Interview prep
- map vs unordered_map?
mapkeeps sorted keys (tree);unordered_mapuses hashing for average O(1) lookup.- operator[] side effect?
Inserts default value if key missing—use
.at()or.find()when insert is undesired.