C ++ set insert()用于在集合中插入新元素。
因為元素鍵在集合中是唯一的,所以插入操作首先檢查給定鍵是否已存在于集合中,如果鍵存在于集合中,則不會將其插入到集合中并迭代到現(xiàn)有的迭代器返回鍵,否則將新元素插入集合。
//普通引用方式傳參 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開始
val:要插入集合的值。
position:提示在元素中插入元素的位置。
first:要插入范圍的起點。
last:要插入范圍的末尾。
il:初始化列表。
返回布爾對以表示是否發(fā)生插入,并返回指向新插入元素的迭代器。
如果插入單個元素,那么復雜度將是對數(shù)的。
如果給出提示,并且給出的位置是最佳位置,則復雜度將攤銷為常數(shù)。
沒有變化。
容器已修改。
此函數(shù)不會引發(fā)異常。
讓我們看一下將元素插入到集合中的簡單示例:
#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
在上面的示例中,它只是使用給定的鍵插入元素。
讓我們看一個簡單的示例,將元素插入指定位置:
#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
在上面的示例中,元素被插入到定義的位置。
讓我們看一個簡單的示例,將給定范圍內(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ù)將一個集合插入到另一個集合
//從3到結束的所有元素是
//插入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
讓我們看一個簡單的示例,從初始化列表中插入元素:
#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
在上面的示例中,元素是從初始化列表中插入的。