2024年1月20日发(作者:)
map容器的insert用法总结
map容器是C++ STL库中的一种关联容器,它以键值对(key-value
pair)的形式存储数据,并且按照键的顺序进行自动排序。插入操作是map容器中的一项重要操作,本文将详细介绍map容器的insert用法。
1.插入单个键值对
可以使用insert函数将一个键值对插入到map容器中。插入操作的时间复杂度为O(log n),其中n为map容器中的元素个数。具体用法如下:
````cpp
std::map
(std::pair
```
或者使用C++11新特性的初始化列表:
````cpp
std::map
({key, value});
```
2.插入键值对序列
可以使用insert函数将一个键值对序列插入到map容器中。插入操作的时间复杂度为O(k log n),其中k为插入序列的元素个数,n为map容器中的元素个数。具体用法如下:
````cpp
std::map
(std::make_pair(key1, value1));(std::make_pair(key2, value2));(std::make_pair(key3, value3));//...
```
或者使用C++11新特性的初始化列表:````cpp
std::map
({key1, value1});
({key2, value2});
({key3, value3});
//...
```
3. 插入另一个map容器中的键值对
可以使用insert函数将另一个map容器中的键值对插入到当前map容器中。插入操作的时间复杂度为O(k log n),其中k为插入序列的元素个数,n为map容器中的元素个数。具体用法如下:
````cpp
std::map
std::map
((, ();
```
4.使用迭代器插入键值对
可以使用insert函数使用迭代器指定的位置插入键值对。插入操作的时间复杂度为O(log n),其中n为map容器中的元素个数。具体用法如下:
````cpp
std::map
std::map
(it, std::pair
```
5.插入已存在的键值对
````cpp
std::map
myMap[key] = value; // 更新已存在的键值对的值
```
需要注意的是,当插入键值对时,map容器会根据键的顺序进行自动排序。如果需要按照自定义的排序规则进行排序,可以使用自定义的比较函数作为map容器的模板参数。
下面是一些insert函数的使用示例:
```cpp
#include
#include
int mai
std::map
//插入单个键值对
(std::pair
(std::make_pair(2, "two"));
(std::make_pair(3, "three"));
(std::make_pair(4, "four"));
// 插入另一个map容器中的键值对
std::map
(std::make_pair(5, "five"));
(std::make_pair(6, "six"));
((, ();
//使用迭代器插入键值对
std::map
(it, std::make_pair(0, "zero"));
//插入已存在的键值对
myMap[4] = "updated";
// 输出map容器中的键值对
for (const auto& pair : myMap)
std::cout << << ": " << << std::endl;
}
return 0;
```
运行以上代码,输出结果为:
```
0: zero
1: one
2: two
3: three
4: updated
5: five
6: six
```
总结起来,map容器的insert函数可以实现单个键值对、键值对序列、另一个map容器中的键值对、迭代器指定位置插入键值对以及更新已存在的键值对等操作。根据具体的需求,可以选择合适的insert函数重载版本来完成插入操作。


发布评论