std::map insert
时间: 2023-07-03 10:07:02 浏览: 124
`std::map` 是 C++ STL 中的一个关联容器,它提供了一种键值对的映射方式。在 `std::map` 中插入元素可以使用 `insert()` 函数,该函数有两个重载版本:
1. `insert(const value_type& val)`:将 `val` 插入到 `map` 中,如果 `val` 的键已经存在,则不插入任何元素。
2. `insert(std::pair<iterator,bool> res)`:将 `res` 插入到 `map` 中,如果 `res` 的键已经存在,则不插入任何元素。返回一个迭代器和一个布尔值,如果插入成功则布尔值为 `true`,否则为 `false`。
示例如下:
```c++
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> mymap;
// 插入元素
mymap.insert(std::pair<int, std::string>(1, "apple"));
mymap.insert(std::make_pair(2, "banana"));
mymap.insert(std::pair<int, std::string>(3, "cherry"));
mymap.insert({4, "durian"});
// 尝试插入重复键值元素
auto result = mymap.insert(std::pair<int, std::string>(3, "pear"));
if (result.second == false) {
std::cout << "Element already exists with key " << result.first->first << ", value is " << result.first->second << std::endl;
}
// 遍历元素
std::cout << "Elements in mymap:" << std::endl;
for (auto it = mymap.begin(); it != mymap.end(); it++) {
std::cout << it->first << " => " << it->second << std::endl;
}
return 0;
}
```
输出结果:
```
Element already exists with key 3, value is cherry
Elements in mymap:
1 => apple
2 => banana
3 => cherry
4 => durian
```
阅读全文