C++ 基礎(chǔ)教程

C++ 流程控制

C++ 函數(shù)

C++ 數(shù)組 & 字符串

C++ 數(shù)據(jù)結(jié)構(gòu)

C++ 類 & 對(duì)象

C++ 指針

C++ 繼承

C++ STL 教程

C++ 參考手冊(cè)

C++ set insert() 使用方法及示例

C++ STL Set(集合)

C ++ set insert()用于在集合中插入新元素

因?yàn)樵劓I在集合中是唯一的,所以插入操作首先檢查給定鍵是否已存在于集合中,如果鍵存在于集合中,則不會(huì)將其插入到集合中并迭代到現(xiàn)有的迭代器返回鍵,否則將新元素插入集合。

語(yǔ)法

//普通引用方式傳參
pair<iterator,bool> insert (const value_type& val);
//右值引用方式傳參
pair<iterator,bool> insert (value_type&& val);
//以普通引用的方式傳遞 val 值
iterator insert (const_iterator position, const value_type& val);
//以右值引用的方式傳遞 val 值
iterator insert (const_iterator position, value_type&& val);
template <class InputIterator>
  void insert (InputIterator first, InputIterator last);
  void insert (initializer_list<value_type> il);              //從 C++ 11開始

參數(shù)

val:要插入集合的值。

position:提示在元素中插入元素的位置。

first:要插入范圍的起點(diǎn)。

last:要插入范圍的末尾。

il:初始化列表。

返回值

返回布爾對(duì)以表示是否發(fā)生插入,并返回指向新插入元素的迭代器。

復(fù)雜

  • 如果插入單個(gè)元素,那么復(fù)雜度將是對(duì)數(shù)的。

  • 如果給出提示,并且給出的位置是最佳位置,則復(fù)雜度將攤銷為常數(shù)。

迭代器有效性

沒有變化。

數(shù)據(jù)爭(zhēng)用

容器已修改。

異常安全

此函數(shù)不會(huì)引發(fā)異常。

實(shí)例1

讓我們看一下將元素插入到集合中的簡(jiǎn)單示例:

#include <iostream>
#include <set>

using namespace std;
int main()
{
    set<int> s;
 
    // 插入元素的函數(shù)
    // 在set容器中
    s.insert(1);
    s.insert(4);
    s.insert(2);
    s.insert(5);
    s.insert(3);
 
    cout << "集合中的元素是: ";
    for (auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
 
    return 0;
}

輸出:

集合中的元素是: 1 2 3 4 5

在上面的示例中,它只是使用給定的鍵插入元素。

實(shí)例2

讓我們看一個(gè)簡(jiǎn)單的示例,將元素插入指定位置:

#include <iostream>
#include <set>

using namespace std;

int main()
{ 
    set<int> s;
 
     //插入元素的函數(shù)
     //在set容器中
    auto itr = s.insert(s.begin(), 1);
 
    itr = s.insert(itr, 4);
    itr = s.insert(itr, 2);
    itr = s.insert(itr, 5);
    itr = s.insert(itr, 3);
 
    cout << "集合中的元素是: ";
    for (auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
 
    return 0;
}

輸出:

集合中的元素是: 1 2 3 4 5

在上面的示例中,元素被插入到定義的位置。

實(shí)例3

讓我們看一個(gè)簡(jiǎn)單的示例,將給定范圍內(nèi)的一組元素插入到另一組:

#include <iostream>
# include<iostream>
# include<set>

using namespace std;

int main()
{ 
    set<int> s1;
 
    //插入元素的函數(shù)
     //在set容器中
    s1.insert(1);
    s1.insert(4);
    s1.insert(2);
    s1.insert(5);
    s1.insert(3);
 
    cout << "set1中的元素是: ";
    for (auto it = s1.begin(); it != s1.end(); it++)
        cout << *it << " ";
 
    set<int> s2;
 
    //函數(shù)將一個(gè)集合插入到另一個(gè)集合
    //從3到結(jié)束的所有元素是
    //插入set2
    s2.insert(s1.find(3), s1.end());
 
    cout << "\nset2中的元素是: ";
    for (auto it = s2.begin(); it != s2.end(); it++)
        cout << *it << " ";
 
    return 0;
}

輸出:

set1中的元素是: 1 2 3 4 5 
set2中的元素是: 3 4 5

實(shí)例4

讓我們看一個(gè)簡(jiǎn)單的示例,從初始化列表中插入元素:

#include <iostream>
#include <set>

using namespace std;

int main(void) {
   set<string> m = {"Java", "C++", "SQL"};
   
  // 插入初始化器列表中的元素
   m.insert({"VB", "Oracle"});

   cout << "集合包含以下元素:" << endl;

   for (auto it = m.begin(); it != m.end(); ++it)
      cout << *it<< endl;

   return 0;
}

輸出:

集合包含以下元素:
C++
Java
Oracle
SQL
VB

在上面的示例中,元素是從初始化列表中插入的。

C++ STL Set(集合)

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清