在 C++ 容器中,插入或修改元素时
在 C++ 容器中,插入或修改元素时,具体行为会因使用的函数或方法而有所不同。这种差异主要体现在插入元素时是否覆盖、是否允许重复,以及返回的值如何体现操作的结果。
以下是常用插入和修改操作函数的行为分析:
std::map 和 std::unordered_map
常用函数:operator[]
如果键不存在,会插入默认值。
如果键存在,会修改对应的值。
std::map<int, int> mymap;
mymap[1] = 10; // 插入键值对 {1, 10}
mymap[1] = 20; // 修改键 1 对应的值为 20
常用函数:insert()
如果键存在,insert() 会拒绝插入,并返回一个 pair:
pair.first 是指向现有键值对的迭代器。
pair.second 是一个布尔值,表示是否成功插入。
std::map<int, int> mymap;
auto res = mymap.insert({1, 10}); // 插入 {1, 10}
if (!res.second) {
cout << "Key already exists with value: " << res.first->second << endl;
}