在C++ STL中使用unordered_map emplace_hint()函数
unordered_map::emplace_hint() 是C++ STL中的内置函数,它用给定的提示将键及其元素插入到unordered_map容器中。它有效地将容器大小增加了一个,因为unordered_map是存储带有元素值的键的容器。提供的提示不会影响要输入的位置,它仅增加了插入的速度,因为它指向从哪里开始查找排序的位置。它按照容器遵循的相同顺序插入。它的工作方式类似于unordered_map::emplace()函数,但是如果用户提供了精确的位置,则有时比它更快。如果键已经存在于地图容器中,则不插入该键和元素,因为地图只存储独特的键。
语法:
unordered_map_name.emplace_hint(position, key, element)
参数:
- position: 指定要从哪里开始搜索排序操作,从而使插入更快。
- key: 指定要插入到unordered_map容器中的键。
- element: 指定要插入到unordered_map容器中的键的元素。
返回类型: 此函数不返回任何内容。
时间复杂度: 在最坏情况下为O(n)。以下程序说明了emplace_hint()方法:
示例1:
// C++程序演示unordered_map :: emplace_hint()函数
#include <bits/stdc++.h>
using namespace std;
int main()
{
//初始化容器
unordered_map <int,int> mp;
//以任意顺序插入元素
mp.emplace_hint(mp.begin(), 2, 30);
mp.emplace_hint(mp.begin(), 1, 40);
mp.emplace_hint(mp.begin(), 3, 60);
//打印元素
cout <<“\n unordered_map是:\ n”;
cout << "键\t元素\n";
for (auto itr = mp.begin(); itr!= mp.end(); itr ++)
cout << itr->first <<“\t”
<< itr->second << endl;
return 0;
}
输出:
unordered_map是:
键 元素
3 60
2 30
1 40
示例2
// C++程序演示unordered_map :: emplace_hint()函数
#include <bits/stdc++.h>
using namespace std;
int main()
{
//初始化容器
unordered_map <char,int> mp;
//以任意顺序插入元素
mp.emplace_hint(mp.begin(), 'b',30);
mp.emplace_hint(mp.begin(), 'a',40);
mp.emplace_hint(mp.begin(), 'c',60);
//打印元素
cout <<“\n unordered_map是:\ n”;
cout <<“键\t元素\n”;
for (auto itr = mp.begin(); itr!= mp.end(); itr ++)
cout << itr->first <<“\t”
<< itr->second << endl;
return 0;
}
输出:
unordered_map是:
键 元素
c 60
b 30
a 40