处理将键插入已经包含该键的映射的尝试的标准方法是什么?
是否应该引发错误?
插入函数是否应该简单地返回而不添加键/值对?
插入功能是否应该删除已经存在的键/值对并插入新的键/值对?
谢谢:)
答案 0 :(得分:2)
std::map::insert
返回一个(迭代器,布尔值)对。如果不存在该键,则将其插入给定值,然后该函数将返回一个迭代器,并在第二个组件中返回true
。
如果键已经存在,则保留旧值。该函数将迭代器返回到现有元素,并在第二个组件中返回false
。
从C ++ 17开始,std::map
还提供了insert_or_assign
成员函数。它的行为方式相同,不同之处在于,如果密钥已经存在,则旧值将替换为新值。