C++标准库set类型
来源:互联网 发布:范志毅数据 编辑:程序博客网 时间:2024/05/18 01:44
set(集合)和map一样也属于关联容器,和map不同的是它只保存关键字,而且关键字会按升序排序且不重复,set的内部实现是用红黑树实现的。接下来就为大家介绍set的用法
1.set对象的创建
事例如下
//尖括号中说明set保存关键字类型set<int> s;
2.向set中添加元素
像其他容器一样,我们可以使用insert来向set中插入元素
实例如下
#include<iostream>#include<set>using namespace std;int main(int argc,char **argv){ set<int> s; //插入方式 s.insert(3); //输出set中的元素 for(auto x:s) { cout<<x<<" "; } cout<<endl; return 0;}
注意由于set内部是默认排序的,所以我们不能直接改变set关键字的值(set中的关键字是只读的),若先改变则先删除在插入
3.set的删除
实例如下
#include<iostream>#include<set>using namespace std;int main(int argc,char **argv){ set<int> s; //插入方式 s.insert(3); s.insert(4); //删除关键字3 s.erase(3); //输出set中的元素 for(auto x:s) { cout<<x<<" "; } cout<<endl; return 0;}
4.若set中的关键字为自定义类型
set容器中排序默认以升序的方式排序,所以它尖括号中的类型必须支持排序,如果是我们自定义的类型,则我们要为它定义一个我们自己的比较函数
实例如下
#include<iostream>#include<set>using namespace std;//自定义类型class Student{ public: int num; //学号 string name;//姓名};bool compare(const Student &s1,const Student &s2){ return s1.num < s2.num;}int main(int argc,char **argv){ //此处我们用decltype来获得函数指针类型,类型后面必须加上*来指出我们要用一个给定函数类型的指针 set<Student,decltype(compare) *> s(compare); Student stu1,stu2; stu1.num = 1; stu1.name = "shreck"; stu2.num = 2; stu2.name = "leo"; //插入stu1和stu2 s.insert(stu1); s.insert(stu2); for(auto x:s) { cout<<"num = "<<x.num<<" "<<"name = "<<x.name<<endl; } return 0;}
5.set的几个重要操作函数
0 0
- C++标准库set类型
- C++标准库set类型
- C++标准库set类型
- C++:标准库类型
- C++Primer 标准库类型
- [C++]标准库类型容器
- C++,标准库类型vector
- C++ Primer 有感(标准库set类型)
- 《C++Primer》 第三章 标准库类型
- C++primer第三章:标准库类型
- 《C++Primer》读书笔记---标准类型库
- c++Primer,三,标准库类型
- C++primer 3.3 标准库类型 vector
- C++(3)标准库类型
- c++_标准库类型string
- C++_标准库类型_string
- C++_标准库类型_vector
- [C++][基础]5_标准库类型
- Android本地服务写法 及 生成脚本
- leetcode Best Time to Buy and Sell Stock
- jsp页面第一行报错问题
- 何时该用DOM脚本设置样式
- Java与持久相关的锁总结
- C++标准库set类型
- i++是否原子操作?并解释为什么?
- 支持向量机之序列最小最优化算法
- zabbix安装
- HDU 1201 18岁生日
- hdu 5038 Grade(简单模拟求解)2014 ACM/ICPC Asia Regional 北京 Online
- hdu1078+FatMouse and Cheese+DFS+记忆化搜索
- When Weaker is Better: Understanding Soft, Weak and Phantom References
- 互联网思维PK大数据思维