multiset emplace_hint() 函数在 C++ STL 中的应用

multiset emplace_hint() 函数在 C++ STL 中的应用

multiset::emplace_hint() 是一个 C++ STL 中的内置函数,它可在 multiset 中插入一个新元素。函数的参数传入了一个位置,该位置将作为提示,指示插入元素前搜索操作开始的位置。该位置仅有助于加快过程,但并不决定新元素插入的位置。新元素被插入后,只会按照 multiset 容器的属性来排序。

语法:

multiset_name.emplace_hint(iterator position, value)

参数:

  • position: 要插入元素的位置,将作为提示指示在其当前位置插入元素之前进行搜索操作。该位置仅有助于加快过程,但并不决定新元素插入的位置。新元素被插入后,只会按照 multiset 容器的属性来排序。
  • value: 要插入 multiset 容器的元素。

返回值: 返回一个迭代器,指向插入完成的位置。

下面的程序说明了上述功能。

程序 1:

// CPP program to demonstrate the
// multiset::emplace_hint() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
    multiset<int> s;
    auto it = s.emplace_hint(s.begin(), 1);
    // stores the position of 2's insertion
    it = s.emplace_hint(it, 2);
    // fast step as it directly
    // starts the search step from
    // position where 2 was last inserted
    s.emplace_hint(it, 4);
    // this is a slower step as
    // it starts checking from the
    // position where 4 was inserted
    // but 3 is to be inserted before 4
    s.emplace_hint(it, 3);
    // prints the multiset elements
    for (auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
    return 0;
}
1 2 3 4

程序 2:

// CPP program to demonstrate the
// multiset::emplace_hint() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
    multiset<int> s;
    auto it = s.emplace_hint(s.begin(), 1);
    // stores the position of 2's insertion
    it = s.emplace_hint(it, 2);
    // fast step as it directly
    // starts the search step from
    // position where 2 was last inserted
    s.emplace_hint(it, 4);
    // this is a slower step as
    // it starts checking from the
    // position where 4 was inserted
    // but 3 is to be inserted before 4
    s.emplace_hint(it, 3);
    // slower steps
    s.emplace_hint(s.begin(), 6);
    s.emplace_hint(s.begin(), 6);
    s.emplace_hint(s.begin(), 6);
    s.emplace_hint(s.begin(), 6);
    // prints the multiset elements
    for (auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
    return 0;
}
1 2 3 4 6 6 6 6

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程