# **[](https://en.cppreference.com/w/cpp/header/map)** is an ordered associative container: a sorted tree of key-value pairs with O(log n) insertion, deletion, and lookup. It maintains keys in sorted order and allows iteration from min to max. Use `std::unordered_map` if you don't need order; use `std::map` if you do or if you need to iterate a range of keys. ## Example This example builds a map of names to ages, iterates through in sorted order, and looks up a specific key. ```cpp // compile: g++ -std=c++11 -o mapexample mapexample.cpp // run: ./mapexample // description: map insertion and lookup #include #include #include int main() { std::map age; age["alice"] = 30; age["bob"] = 25; age["charlie"] = 35; for (const auto& [name, years] : age) { std::cout << name << ": " << years << "\n"; } std::cout << "alice is " << age["alice"] << "\n"; return 0; } ```