在C++ STL中使用unordered_map insert函数
unordered_map ::insert()是C++ STL中的一个内置函数,用于将具有特定键的元素插入unordered_map容器中。此函数会增加容器的大小1个。此函数不会插入重复的条目。此函数有以下变体。所有这些都是重载函数。
语法1:
iterator unordered_map_name.insert({key,element})
参数:此函数接受两个输入参数。key和要插入的值。
返回类型:该函数返回一个指向容器中新元素的迭代器。
// C++程序示例
// unordered_map::insert({key, element})
#include <bits/stdc++.h>
using namespace std;
int main()
{
// 初始化容器
unordered_map<int,int> ump;
// 以随机顺序插入元素
ump.insert({20,130);
ump.insert({100,410);
ump.insert({31,60);
// 打印元素
cout<<"KEY\tELEMENT\n";
for(auto itr = ump.begin(); itr!= ump.end(); itr ++){
cout << itr->first
<<'\\t' << itr->second <<'\\n';
}
返回0;
}
KEY ELEMENT
31 60
20 130
100 410
语法2:
iterator unordered_map_name.insert(iterator position,{key,element})
此函数在指定位置之后在unordered_map中插入元素。
参数:类型1中的参数key和element与此函数相同,但是位置是从搜索操作执行插入元素到容器的位置。
返回值:该函数返回一个指向容器中新元素的迭代器。
下面的程序清楚地说明了上述语法。
// C++程序示例
// unordered_map::insert(iterator position,{key,element})
#include <bits/stdc++.h>
using namespace std;
int main()
{
// 初始化容器
unordered_map<char,int> ump;
// 以随机顺序插入元素
ump.insert({ 'a',1);
ump.insert({ 'b',2);
auto it = ump.find('a');
// 从位置2开始搜索(即从元素2开始)
//插入{3,6}
ump.insert(it,{'c',3);
// 打印元素
cout<<"KEY\tELEMENT\n";
for(auto itr = ump.begin(); itr!= ump.end(); ++itr){
cout << itr->first
<<'\\t' << itr->second <<'\\n';
}
返回0;
}
KEY ELEMENT
c 3
a 1
b 2
语法3:
iterator unordered_map_name.insert(iterator position1,iterator position2)
参数:此函数接受两个参数position1和position2,它们指定此范围内的所有元素都插入到另一个容器中,包括position1处的元素但不包括position2处的元素。
返回值:该函数返回一个指向容器中新元素的迭代器。
下面的程序清楚地说明了上述语法。
// C++程序展示unordered_map::insert(iterator position1, iterator position2)
#include <bits/stdc++.h>
using namespace std;
int main()
{
// 初始化容器
unordered_map<int, int> ump, ump1;
// 以随机顺序插入元素
ump.insert({ 2, 20 });
ump.insert({ 1, 10 });
ump.insert({ 3, 30 });
// 将所有元素插入到mp1中的范围[begin,end)中
// 此函数用于在容器之间复制元素。
ump1.insert(ump.begin(), ump.end());
// 打印元素
cout << "ump1中的元素是\n";
cout << "关键词\t元素\n";
for (auto itr = ump1.begin(); itr != ump1.end(); ++itr) {
cout << itr->first
<< '\t' << itr->second << '\n';
}
return 0;
}
ump1中的元素是
关键词 元素
1 10
2 20
3 30