map — sorted (red-black tree). unordered_map — hash table.
std::map:
1std::map<int, std::string> m;2m[3] = "three";3m[1] = "one";4// Iterates: 1, 3
std::unordered_map:
1std::unordered_map<int, std::string> um;2um[3] = "three";3um[1] = "one";4// Iterates: 3, 1 (or any order)
When to use: