前面初识set容器时我们就提到过set容器比map容器要简单一些,主要通过insert()或emplace()添加元素。当然我们还可以通过emplace_hint()带条件地为set容器添加元素,所以总体来说,我们有三种方法为map容器添加元素。下面我将通过代码分别演示这三种方法:

#include<bits/stdc++.h>//万能头,以效率为中心 
#include<string>
#include<set>//包含头文件,养成好习惯 
/*为set容器插入元素*/
/*insert()、emplace_hint()、emplace()*/ 
using namespace std;
void test()
{
set<int> s;
/*insert*/
s.insert(0);//直接插入
s.insert(s.begin(),1) ;//带迭代器参数插入
set<int> s_t({6,7,8,9,10});
s.insert(++s_t.begin(),s_t.end()) ;//区间插入 
s.insert({2,3,4,5});//多个插入 
cout <<"set容器先后插入0、1、{6,7,8,9,10}、{2,3,4,5}后有元素:"  ;
for(auto it = s.begin();it!=s.end();++it)cout << *it << " ";
cout << '\n';
cout << '\n';
s.clear();//清除元素,为emplace()测试做准备 
/*emplace*/
s.emplace(0);//只能插入单个元素 
cout <<"set容器插入0后有元素:"  ;
for(auto it = s.begin();it!=s.end();++it)cout << *it << " ";
cout << '\n';
cout << '\n';
s.clear();//清除元素,为emplace_hint()测试做准备 
/*emplace_hint()*/
/*有返回值,返回一个迭代器,插入成功则返回指向插入元素的迭代器;否则返回end()*/
auto hint = s.begin();
for(int i=0;i<5;++i)
{
hint = s.emplace_hint(hint,i+1);
}
cout <<"set容器插入1,2,3,4,5后有元素:"  ;
for(auto it = s.begin();it!=s.end();++it)cout << *it << " ";
cout << '\n';
}
int main(){
    test();
    return 0;
}

代码编译结果如下:

set容器插入元素

以上就是3种为set容器插入元素的方法,多个插入只能用insert(),单个插入推荐使用emplace,emplace_hint()插入需要巧用迭代器,一般只有在批量添加元素时推荐。


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)