访问量: 9 次浏览
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