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的值,只有【】操作会变化。