map m_str2id; for(int i=0; i<5; i++) { m_str2id.insert(pair("a",cnt)); cnt++; for(auto it = m_str2id.begin(); it != m_str2id.end(); it++) { printf("%s : %d\n", it->first.c_str(), it->second);

输出:a  :  0

key为a的pair插入第一组 [a,0]后, 再插入 [a,1],会 忽略,而不是替换

如果想要替换,需判断是否存在,erase然后再insert。

map的insert方法会忽略重复key,而不是替换int cnt = 0;map&lt;string,int&gt; m_str2id;for(int i=0; i&lt;5; i++) { m_str2id.insert(pair&lt;string,int&gt;("a",cnt)); cnt++;}for(auto it = m_str2id.begin()...
很早之前看过 map 的用法,大致会用,后来学了数据结构,我告诉自己,会 map 了,,,某场面试,面试官的一个 问题 ,让我emm…,anyway,既然有不足,就查缺补漏~ 1. 问题 :当 map 插入 数据时,如果 key 相同,value 是覆盖么? 答:如果 key map 里面有的话,不会覆盖之前的value,一般先判断之前有没有数据(见4.),有的话,先删除,再去添加。还有一种方法,可以通过value = map [ key ],利用[]=来实现覆盖,进行数据的更新。 2.代码: #include <iostream&g
一、 插入 相同键元素操作 (1) insert 方法 在 map 中的键必须是唯一的,当想 map 中连续 插入 键相同但 不同的元素时,编译和运行时都不会发生任何错误,系统会忽略后面的对已存在的键的 插入 操作,如 1 map <int,int> m1; 2 m1. insert (make_pair(1,2)); 3 m1. insert (make_pair(1,3)); 4 for( map &l...
C++ STL库学习-- map 容器简介一、 map 容器创建及 插入 二、 map 容器的大小\统计\查找1.empty2.count3.find三、 map 容器的交换四、 map 容器的删除 map 中的所有元素都是pair,第一个元素为键,第二个元素为 ,所有元素都会根据元素的键 自动排序。优点是可以快速找到value。 map 不允许容器中有 重复 key 元素,multi map 容器中允许有 重复 key 元素。   引入头文件: #include < map > 一、 map 容器创建及 插入
C++ 的`std:: map `容器中,当我们使用` insert `函数 插入 一个已经存在的键时,会发生什么取决于` map `的性质。`std:: map `是一个关联容器,它按照键的顺序进行排序,并且每个键必须是唯一的。 如果使用` insert `函数 插入 一个已经存在的键,新的 将不会替换旧的 。相反,` insert `函数将返回一个`std::pair`对象,该对象的第一个成员指向已经存在的元素,并且第二个成员表示 插入 是否成功。 下面是一个示例代码,演示了这种情况: ```cpp #include <iostream> #include < map > int main() { std:: map <int, std::string> my Map ; my Map . insert (std::make_pair(1, "One")); my Map . insert (std::make_pair(2, "Two")); auto result = my Map . insert (std::make_pair(1, "New One")); if (result.second) { std::cout << " Insert ion succeeded." << std::endl; } else { std::cout << " Insert ion failed. Key already exists." << std::endl; std::cout << "Existing value: " << result.first->second << std::endl; return 0; 在上述代码中,我们首先 插入 了键 对`(1, "One")`和`(2, "Two")`。然后,我们再次尝试 插入 对`(1, "New One")`,但是由于键`1`已经存在, 插入 操作将失败。因此,我们在输出中显示了 插入 失败并打印了已存在的 。 输出结果为: Insert ion failed. Key already exists. Existing value: One 希望这个例子能够帮助你理解当使用` insert `函数 插入 重复 键时的行为。如果你还有其他 问题 ,请随时提问。