C++教程
C++控制语句
C++函数
C++数组
C++指针
C++对象
C++继承
C++多态
C++抽象
C++常用
C++ STL教程
C++迭代器
C++程序

C++ Set insert()

C++ Set insert()用于在集合中插入新元素。
由于元素键在集合中唯一,因此插入操作首先检查给定键是否已存在于集合中,如果该键已存在于集合中,则随后进行检查

语法

single element (1)     pair<iterator,bool> insert (const value_type& val);   //until C++ 11
with hint (2)  iterator insert (iterator position, const value_type& val);   //until C++ 11
range (3)     template <class InputIterator>
           void insert (InputIterator first, InputIterator last);        //until C++ 11
single element (1)  pair<iterator,bool> insert (const value_type& val);
                                pair<iterator,bool> insert (value_type&& val);           //since C++ 11
            
with hint (2)  iterator insert (const_iterator position, const value_type& val);
                          iterator insert (const_iterator position, value_type&& val); //since C++ 11
range (3)   template <class InputIterator>
                          void insert (InputIterator first, InputIterator last);            //since C++ 11
initializer list (4)       void insert (initializer_list<value_type> il);              //since C++ 11

参数

val : 要在集合中插入的值。
position: 提示
first: 要插入的范围的开始。
last: 结束
il : 初始化列表。

返回值

将布尔对返回指示是否发生插入,并返回指向新插入元素的迭代器。

复杂度

如果插入单个元素,复杂度将为对数。 如果给出了提示并且给出的位置是最佳位置,则复杂度将摊销为常数。

迭代器有效性

没有更改。

数据竞争

容器已修改。

异常安全

此函数不会引发异常。

示例1

让我们参见将元素插入集合的简单示例:
#include <iostream>
#include <set>
using namespace std;
int main()
{
    set<int> s;
 
    // Function to insert elements
    // in the set container
    s.insert(1);
    s.insert(4);
    s.insert(2);
    s.insert(5);
    s.insert(3);
 
    cout << "The elements in set are: ";
    for (auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
 
    return 0;
}
输出:
The elements in set are: 1 2 3 4 5
在上面的示例中,它只是使用给定的键插入元素。

示例2

让我们看一个将元素插入到其中的简单示例。指定位置:
#include <iostream>
#include <set>
using namespace std;
int main()
{ 
    set<int> s;
 
    // Function to insert elements
    // in the set container
    auto itr = s.insert(s.begin(), 1);
 
    // the time taken to insertion
    // is very less as the correct
    // position for insertion is given
    itr = s.insert(itr, 4);
    itr = s.insert(itr, 2);
    itr = s.insert(itr, 5);
    itr = s.insert(itr, 3);
 
    cout << "The elements in set are: ";
    for (auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
 
    return 0;
}
输出:
The elements in set are: 1 2 3 4 5  
在上面的示例中,元素被插入到定义的位置。

示例3

让我们看一个简单的示例,以插入一组元素到给定范围内的另一个:
#include <iostream>
# include<iostream>
# include<set>
using namespace std;
int main()
{ 
    set<int> s1;
 
    // Function to insert elements
    // in the set container
    s1.insert(1);
    s1.insert(4);
    s1.insert(2);
    s1.insert(5);
    s1.insert(3);
 
    cout << "The elements in set1 are: ";
    for (auto it = s1.begin(); it != s1.end(); it++)
        cout << *it << " ";
 
    set<int> s2;
 
    // Function to insert one set to another
    // all elements from where 3 is to end is
    // inserted to set2
    s2.insert(s1.find(3), s1.end());
 
    cout << "\nThe elements in set2 are: ";
    for (auto it = s2.begin(); it != s2.end(); it++)
        cout << *it << " ";
 
    return 0;
}
输出:
The elements in set1 are: 1 2 3 4 5 
The elements in set2 are: 3 4 5  

示例4

让我们看一个从初始化列表中插入元素的简单示例:
#include <iostream>
#include <set>
using namespace std;
int main(void) {
   set<string> m = {"Java", "C++", "SQL"};
   
  // Insert the elements from an initializer_list 
   m.insert({"VB", "Oracle"});
   cout << "Set contains following elements" << endl;
   for (auto it = m.begin(); it != m.end(); ++it)
      cout << *it<< endl;
   return 0;
}
输出:
Set contains following elements
C++
Java
Oracle
SQL
VB
在上面的示例中,元素是从初始化列表中插入的。

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4