📅  最后修改于: 2023-12-03 14:39:51.984000             🧑  作者: Mango
在 C++ STL 中,map
是一个非常有用的容器。它提供了对于键值对的快速访问,并允许开发者用许多不同的方式来访问它们。其中 insert()
函数就是 map
中的一个非常基础但是又非常常用的函数。本文将会介绍 insert()
函数的使用方法。
insert()
函数的基本用法map
中的 insert()
函数可以向容器中插入键值对。它包含两个参数,第一个参数是键,第二个参数是值。在插入之前,insert()
函数会检查 map
中是否已经存在该键。如果存在,它将不插入并返回该键所对应的值。如果不存在,则插入新的键值对并返回 map::iterator
迭代器。
下面是一个示例:
#include <iostream>
#include <map>
int main()
{
std::map<std::string, int> myMap;
myMap.insert(std::pair<std::string, int>("apple", 3));
myMap.insert(std::make_pair("orange", 7));
myMap.insert(std::map<std::string, int>::value_type("banana", 5));
std::cout << "myMap contains:\n";
for (auto pair : myMap)
{
std::cout << pair.first << " => " << pair.second << '\n';
}
return 0;
}
以上代码会输出以下结果:
myMap contains:
apple => 3
banana => 5
orange => 7
在以上示例中,我们创建了一个 std::map<std::string, int>
对象 myMap
,并使用 insert()
函数插入了三组键值对。每次 insert()
函数的调用都分别使用了不同的方法来插入新数据。
insert()
函数的高级用法除了基础用法之外,insert()
函数还提供了一些比较高级的用法。下面是一个使用 insert()
函数从另一个 map
中复制数据的示例:
#include <iostream>
#include <map>
int main()
{
std::map<int, int> myMap1 {{1, 2}, {3, 4}, {5, 6}};
std::map<int, int> myMap2;
myMap2.insert(myMap1.begin(), myMap1.end());
std::cout << "myMap2 contains:\n";
for (auto pair : myMap2)
{
std::cout << pair.first << " => " << pair.second << '\n';
}
return 0;
}
以上代码会输出以下结果:
myMap2 contains:
1 => 2
3 => 4
5 => 6
在以上示例中,我们创建了一个 std::map<int, int>
对象 myMap1
,并使用花括号初始化列表插入了三组键值对。然后,我们初始化了一个空的 map
对象 myMap2
,并通过使用 insert()
函数并传入另一个 map
对象的 begin()
和 end()
迭代器来实现了数据的复制。
本文介绍了 map
中的 insert()
函数的基本用法,以及一些比较高级的用法。insert()
函数是一个非常实用的函数,常常被用来在 map
中插入新的键值对。我们希望本文对你有所帮助。