📜  C++ STL中的多集emplace_hint()函数

📅  最后修改于: 2021-05-30 09:45:28             🧑  作者: Mango

multiset :: emplace_hint()是C++ STL中的内置函数,该函数在多集中插入一个新元素。在函数的参数中传递一个位置,该位置充当提示,从此操作开始,然后将元素插入到其当前位置。该位置仅有助于使过程更快,而不能确定要在哪里插入新元素。仅在多集容器的属性之后插入新元素。

句法:

multiset_name.emplace_hint(iterator position, value)

参数:该函数接受两个强制性参数,如下所述:

  • position:此参数用作在元素当前位置插入元素之前从中进行搜索操作的提示。该位置仅有助于加快处理速度,而不能确定要在其中插入新元素的位置。仅在多集容器的属性之后插入新元素。
  • 值:这指定要在多集容器中插入的元素。

返回值:该函数返回一个迭代器,该迭代器指向插入位置。

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

程序1:

// CPP program to demonstrate the
// multiset::emplace_hint() function
#include 
using namespace std;
int main()
{
  
    multiset 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 
using namespace std;
int main()
{
  
    multiset 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
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”