当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ multiset emplace_hint()用法及代码示例


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

用法:

multiset_name.emplace_hint(iterator position, value)

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


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

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

以下示例程序旨在说明上述函数。

示例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


相关用法


注:本文由纯净天空筛选整理自gopaldave大神的英文原创作品 multiset emplace_hint() function in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。