std::unordered_map<int, int > map; map.insert(std::make_pair(1, 2)); map.insert(std::make_pair(2, 3)); map.insert(std::make_pair(3, 4)); map.insert(std::make_pair(1, 5)); printf("----------Insert------------------\n"); for (auto item : map) { printf("key :%d, value:%d\n", item.first, item.second); } map.clear(); map.emplace(1, 2); map.emplace(2, 3); map.emplace(3, 4); map.emplace(1, 5); printf("----------emplace------------------\n"); for (auto item : map) { printf("key :%d, value:%d\n", item.first, item.second); } map.clear(); map[1] = 2; map[2] = 3; map[3] = 4; map[1] = 5; printf("----------[]------------------\n"); for (auto item : map) { printf("key :%d, value:%d\n", item.first, item.second); }
insert和emplace均不会替换原先的key的值,只有【】操作会变化。