C++
Beginner
1 min read
Associative Containers: map, set, unordered_map
Example
#include <iostream>
#include <map>
#include <set>
#include <unordered_map>
#include <string>
int main() {
// --- std::map ---
std::map<std::string, int> wordCount;
for (const std::string& w : {"cat","dog","cat","bird","dog","cat"})
++wordCount[w]; // operator[] default-inserts 0
std::cout << "Word counts (sorted):\n";
for (const auto& [word, count] : wordCount) // C++17 structured binding
std::cout << " " << word << ": " << count << "\n";
// Safe lookup without insertion
if (auto it = wordCount.find("cat"); it != wordCount.end())
std::cout << "cat found: " << it->second << "\n";
// --- std::set ---
std::set<int> primes = {2, 3, 5, 7, 11, 13};
primes.insert(17);
primes.insert(7); // duplicate — silently ignored
std::cout << "Primes: ";
for (int p : primes) std::cout << p << " ";
std::cout << "\n";
std::cout << "contains 11: " << primes.count(11) << "\n";
// --- std::unordered_map (O(1) avg) ---
std::unordered_map<std::string, std::string> capitals;
capitals["France"] = "Paris";
capitals["Germany"] = "Berlin";
capitals["Japan"] = "Tokyo";
std::cout << "Capital of Japan: " << capitals.at("Japan") << "\n";
return 0;
}