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


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


在本文中,我们将讨论 C++ STL 中的 set::emplace_hint() 函数、它们的语法、工作和返回值。

C++ STL 中的 Set 是什么?

C++ STL 中的集合是容器,它们必须按一般顺序具有唯一元素。集合必须具有唯一的元素,因为元素的值标识了元素。一旦在 set 容器中添加了一个值,以后就无法修改,尽管我们仍然可以将这些值删除或添加到 set 中。集合用作二叉搜索树。

设置内容::emplace_hint()

emplace_hint() 函数是 C++ STL 的内置函数,定义在头文件中。此函数在集合容器中插入一个具有位置的新元素。在 emplace_hint() 中,我们传递带有位置的元素,该位置充当提示。当且仅当没有其他值等于要插入的值时才插入元素。该函数从提示位置开始搜索,并找到要放置元素的位置。

用法

Set1.emplace_hint(iterator position, const type_t& value);

参数

这个函数接受两个参数,一个是提示位置,第二个是要放置的元素。

Position- 这是提示位置,从这里开始搜索找到要放置的值的位置。这个位置恰好使函数的工作更快,这个函数没有指定要放置的元素的确切位置。

Value- 我们必须实现的真正价值。

返回值

如果元素插入成功,此函数将迭代器返回到新插入的元素。

示例

Input:set mySet;
mySet.emplace_hint(mySet.begin(), 0);
mySet.emplace_hint(i, 1);
mySet.emplace_hint(i, 2);
mySet.emplace_hint(i, 1);
Output:Elements are:0 1 2

示例

#include <bits/stdc++.h>
using namespace std;
int main(){
   set<int> mySet;
   auto i = mySet.emplace_hint(mySet.begin(), 0);
   i = mySet.emplace_hint(i, 1);
   mySet.emplace_hint(i, 2);
   mySet.emplace_hint(i, 1);
   cout<<"elements are:";
   for (auto i = mySet.begin(); i != mySet.end(); i++)
      cout << *i<< " ";
   return 0;
}

输出

如果我们运行上面的代码,那么它将生成以下输出 -

Elements are:0 1 2

示例

#include <iostream>
#include <set>
#include <string>
int main (){
   std::set<std::string> mySet;
   auto i = mySet.cbegin();
   mySet.emplace_hint (i,"best");
   i = mySet.emplace_hint (mySet.cend(),"point");
   i = mySet.emplace_hint (i,"is the");
   i = mySet.emplace_hint (i,"tutorials");
   std::cout<<"string is:";
   for(const std::string& str:mySet)
      std::cout << ' ' << str;
   std::cout << '\n';
   return 0;
}

输出

如果我们运行上面的代码,那么它将生成以下输出 -

String is:best is the point tutorials

相关用法


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