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


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


unordered_multiset::emplace_hint()是C++ STL中的内置函数,该函数在unordered_multiset容器中插入新元素。它从参数中提供的位置开始搜索元素的插入点。该位置仅用作提示,它不决定要进行插入的位置。插入会根据容器的标准自动在该位置进行。它将容器的尺寸增加了一个。

用法:

unordered_multiset_name.emplace_hint(iterator position, val)

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


  • position:它指定迭代器,该迭代器指向从中开始搜索插入操作的位置。
  • val:它指定要插入到容器中的元素。

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

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

示例1:

// C++ program to illustrate the 
// unordered_multiset::emplace_hint() 
#include <bits/stdc++.h> 
using namespace std; 
  
int main() 
{ 
  
    // declaration 
    unordered_multiset<int> sample; 
  
    // inserts element using emplace_hint() 
  
    // fast insertions as the search starts 
    // from the previously inserted positions 
    auto it = sample.emplace_hint(sample.begin(), 11); 
    it = sample.emplace_hint(it, 11); 
    it = sample.emplace_hint(it, 11); 
  
    // slow insertions as the search starts from the 
    // beginning of the containers 
    sample.emplace_hint(sample.begin(), 12); 
    sample.emplace_hint(sample.begin(), 13); 
    sample.emplace_hint(sample.begin(), 13); 
    sample.emplace_hint(sample.begin(), 14); 
  
    cout << "Elements: "; 
  
    for (auto it = sample.begin(); it != sample.end(); it++) 
        cout << *it << " "; 
    return 0; 
}
输出:
Elements: 14 11 11 11 12 13 13

示例2:

// C++ program to illustrate the 
// unordered_multiset::emplace_hint() function 
#include <bits/stdc++.h> 
using namespace std; 
  
int main() 
{ 
  
    // declaration 
    unordered_multiset<char> sample; 
  
    // inserts element using emplace_hint() 
  
    // fast insertions as the search starts 
    // from the previously inserted positions 
    auto it = sample.emplace_hint(sample.begin(), 'a'); 
    it = sample.emplace_hint(it, 'a'); 
    it = sample.emplace_hint(it, 'a'); 
    it = sample.emplace_hint(it, 'b'); 
  
    // slow insertions as the search starts from the 
    // beginning of the containers 
    sample.emplace('b'); 
    sample.emplace('c'); 
    sample.emplace('d'); 
  
    cout << "Elements: "; 
  
    for (auto it = sample.begin(); it != sample.end(); it++) 
        cout << *it << " "; 
    return 0; 
}
输出:
Elements: d a a a b b c


相关用法


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