在C++ STL中使用unordered_map emplace_hint()函数

在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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程