C++ STL的unordered_set insert()函数

C++ STL的unordered_set insert()函数

unordered_set::insert()是C++ STL的内置函数,用于在unordered_set容器中插入新{元素}。仅当元素在容器中不存在时,才会插入每个元素(unordered_set中的元素具有唯一值)。插入是根据容器的准则自动完成的(因为它使用不同的哈希函数),在相应的位置插入。这会通过插入的元素数量有效地增加容器大小。

语法:

unordered_set_name.insert (value)
或者,
unordered_set_name.insert (InputIterator first, InputIterator last)

参数:

  • value :它指定要插入到容器中的值。
  • first , last :指定一系列元素的迭代器。在unordered_set容器中插入范围[first,last)中的元素的副本。请记住,范围包括first和last之间的所有元素,包括由first指向但不是指向的元素由last指向。

返回值: 该函数返回一个pair,其成员pair::first设置为指向新插入的元素或已经在集合中的等效元素的迭代器。对中pair::second元素集合中存在相同元素时设置为true,已经存在等效的元素时设置为false。
以下是说明上述函数的程序:
时间复杂度: 插入()方法的时间复杂度为O(1)。

程序1: :

#include<iostream>
#include <string>
#include <unordered_set>
using namespace std;
 
int main()
{
    unordered_set<string> mySet = { "first", "third" };
 
    string myString = "tenth";
 
    // inserts key in set
    mySet.insert(myString);
 
    cout << "My set contains:"
         << endl;
    for (const string& x : mySet) {
        cout << x
             << " ";
    }
 
    cout << endl;
    return 0;
}

输出:

My set contains:
tenth first third 

程序2: :

// C++ program to illustrate
// unordered_set::insert()
 
#include <array>
#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;
 
int main()
{
    unordered_set<std::string> mySet = { "first",
                                "third", "second" };
    array<std::string, 2> myArray = { "tenth",
                                      "seventh" };
    string myString = "ninth";
 
    mySet.insert(myString);
 
    // array elements range insertion in set
    mySet.insert(myArray.begin(), myArray.end());
 
    // initializer list insertion
    mySet.insert({ "fourth", "sixth" });
 
    cout << "myset contains:"
         << endl;
    for (const string& x : mySet) {
        cout << x
             << " ";
    }
    cout << endl;
 
    return 0;
}

输出:

myset contains:
sixth fourth seventh first tenth second third ninth 

程序3:

// C++程序说明
// unordered_set::insert() 返回值
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
 
//显示unordered set中元素的函数
void display_elements(unordered_set<int> &u_set)
{
  cout<<"unordered set中的元素为:";
  for(auto it:u_set)
  {
    cout<<it <<" ";
  }
  cout<<endl;
}
 
 
int main() {
 
    unordered_set<int> u_set;
      cout<<"u_set.insert(1).second: "<<u_set.insert(1).second<<endl; //成功插入返回true,否则返回false。
      cout<<"*(u_set.insert(1).first): "<<*(u_set.insert(1).first)<<endl;
      //first是插入元素的迭代器,如果元素不在u_set中,
    //即返回非重复元素的迭代器,否则返回指向重复元素的迭代器
 
    cout<<"u_set.insert(1).second: "<<u_set.insert(1).second<<endl;
      cout<<"*(u_set.insert(1).first): "<<*(u_set.insert(1).first)<<endl;
       
    cout<<"u_set.insert(2).second: "<<u_set.insert(2).second<<endl; //成功插入返回true,否则返回false。
      cout<<"*(u_set.insert(2).first): "<<*(u_set.insert(2).first)<<endl;
   
      display_elements(u_set);
      return 0;
}

输出结果

u_set.insert(1).second: 1
*(u_set.insert(1).first): 1
u_set.insert(1).second: 0
*(u_set.insert(1).first): 1
u_set.insert(2).second: 1
*(u_set.insert(2).first): 2
unordered set中的元素为:2 1 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程