C++ STL中的unordered_multimap emplace_hint()函数

C++ STL中的unordered_multimap emplace_hint()函数

unordered_multimap::emplace_hint() 是C++ STL中的内置函数,用于在unordered_multimap容器中插入新的{key:element}。它从参数提供的位置开始搜索元素的插入点。位置仅作为提示,不决定插入的位置。插入根据容器的标准自动进行,容器的大小增加1。

语法:

unordered_multimap_name.emplace_hint_ (iterator position, key, element)

参数: 函数接受三个必需参数,如下所述:

  • position: 它指定指向从哪里开始进行插入的迭代器位置。
  • key: 它指定要插入到容器中的键。
  • element: 它指定要插入到容器中的元素。

返回值: 它返回指向新插入元素的迭代器。

下面的程序说明了上述函数:

程序1:

        // C++ program to illustrate
        // unordered_multimap::emplace_hint()
        #include <iostream>
        #include <string>
        #include <unordered_map>
        using namespace std;

        int main()
        {

            // 声明
            unordered_multimap<int, int> sample;
            // 在正确的提示下以更快的方式插入键和元素
            auto it = sample.emplace_hint(sample.begin(), 1, 2);
            it = sample.emplace_hint(it, 1, 2);
            it = sample.emplace_hint(it, 1, 3);
            //以错误的位置开始的更慢的方法
            sample.emplace_hint(sample.begin(), 4, 9);
            sample.emplace_hint(sample.begin(), 60, 89);
            std::cout << "键和元素:\n";
            for (auto it = sample.begin(); it!= sample.end(); it++)
                cout << "{" << it->first << ":" << it->second << "}\n ";
            std::cout << std::endl;
            return 0;
        }

输出:

  键和元素:
  {60:89}
  {4:9}
  {1:2}
  {1:2}
  {1:3}

程序2:

        // C++ program to illustrate
        // unordered_multimap::emplace_hint()
        #include <iostream>
        #include <string>
        #include <unordered_map>
        using namespace std;

        int main()
        {

            // 声明
            unordered_multimap<string, string> sample;

            // 以正确的提示方式插入元素
            auto it = sample.emplace_hint(sample.begin(), "gopal", "dave");
            it = sample.emplace_hint(it, "gopal", "dave");
            it = sample.emplace_hint(it, "Geeks", "Website");

            // 以错误的位置开始的更慢的方法
            sample.emplace_hint(sample.begin(), "Geeks", "STL");
            sample.emplace_hint(sample.begin(), "Multimap", "functions");

            std::cout << "键和元素:\n";
            for (auto it = sample.begin(); it != sample.end(); it++)
                cout << "{" << it->first << ":" << it->second << "}\n ";

            std::cout << std::endl;
            return 0;
        }

输出:

  键和元素:
  {Multimap:functions}
  {Geeks:Website}
  {Geeks:STL}
  {gopal:dave}
  {gopal:dave}

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程