C++ std::map的插入
时间: 2023-07-20 13:14:45 浏览: 104
在 C++ 中,std::map 是一种关联式容器,其内部元素按键值自动排序。插入元素可以使用 insert() 成员函数,其语法如下:
```c++
std::pair<iterator, bool> insert(const value_type& val);
std::pair<iterator, bool> insert(value_type&& val);
iterator insert(const_iterator hint, const value_type& val);
iterator insert(const_iterator hint, value_type&& val);
template <class InputIterator>
void insert(InputIterator first, InputIterator last);
void insert(std::initializer_list<value_type> il);
```
其中,第一个和第二个重载版本的 insert() 函数将 val 插入到 std::map 中,并返回一个 std::pair 对象。std::pair 对象包含一个迭代器,指向新插入的元素,以及一个布尔值,表示插入是否成功。如果插入成功,布尔值为 true,否则为 false。
第三个和第四个重载版本的 insert() 函数将 val 插入到 std::map 中,并返回一个迭代器,指向新插入的元素。
第五个 insert() 函数可以插入一个序列中的元素,从 first 到 last。
最后一个 insert() 函数可以插入一个 std::initializer_list 中的元素。
下面是一个使用 insert() 函数插入元素的示例:
```c++
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> my_map;
// 插入元素,使用 std::pair 对象判断插入是否成功
std::pair<std::map<int, std::string>::iterator, bool> ret;
ret = my_map.insert(std::pair<int, std::string>(1, "one"));
if (ret.second == false) {
std::cout << "Insert failed\n";
}
// 插入元素,使用迭代器指向新插入的元素
std::map<int, std::string>::iterator it;
it = my_map.insert(std::pair<int, std::string>(2, "two"));
// 插入元素,使用 hint 参数指定插入位置
my_map.insert(it, std::pair<int, std::string>(3, "three"));
// 插入多个元素
my_map.insert({{4, "four"}, {5, "five"}});
// 遍历输出所有元素
for (auto& x : my_map) {
std::cout << x.first << ": " << x.second << std::endl;
}
return 0;
}
```
阅读全文