unordered_multiset emplace_hint() 函数在C++ STL中
unordered_multiset::emplace_hint() 是C++ STL中的内置函数,它将一个新元素插入到unordered_multiset容器中。 它从参数提供的位置开始搜索元素插入点。 位置仅作为提示,不决定插入的位置。 根据容器的标准自动在位置上插入。 它将容器的大小增加一。
语法:
unordered_multiset_name.emplace_hint(iterator position, val)
参数: 函数接受两个强制参数,如下所述:
- position: 它指定指向要开始查找插入的位置的迭代器。
- val: 它指定要插入到容器中的元素。
返回值: 它返回一个指向新插入的元素的迭代器。 下面的程序说明了上述功能:
程序1:
//C++程序说明
//unordered_multiset::emplace_hint()
#include
使用命名空间std;
int main()
{
//声明
unordered_multiset样本;
//使用emplace_hint()插入元素
//快速插入,因为搜索从先前插入的位置开始搜索
auto it = sample.emplace_hint(sample.begin(), 11);
it = sample.emplace_hint(it, 11);
it = sample.emplace_hint(it, 11);
//慢速插入,因为搜索从容器的开头开始
sample.emplace_hint(sample.begin(), 12);
sample.emplace_hint(sample.begin(), 13);
sample.emplace_hint(sample.begin(), 13);
sample.emplace_hint(sample.begin(), 14);
cout << “元素:”;
for (auto it = sample.begin(); it!= sample.end(); it++)
cout << *it <<“ ”;
return 0;
}
输出:
Elements: 14 11 11 11 12 13 13
时间复杂度: O(n)
辅助空间: O(n)
程序2:
//C++程序说明
//unordered_multiset::emplace_hint()函数
#include
using namespace std;
int main()
{
//声明
unordered_multiset样本;
//使用emplace_hint()插入元素
//快速插入,因为搜索从先前插入的位置开始搜索
auto it = sample.emplace_hint(sample.begin(),'a');
it = sample.emplace_hint(it,'a');
it = sample.emplace_hint(it,'a');
it = sample.emplace_hint(it,'b');
//慢速插入,因为搜索从容器的开头开始
sample.emplace('b');
sample.emplace('c');
sample.emplace('d');
cout << “元素:”;
for (auto it = sample.begin(); it!= sample.end(); it++)
cout << *it << “ ”;
return 0;
}
输出:
Elements: d a a a b b c
时间复杂度: O(n)
辅助空间: O(n)