stl set常用操作
来源:互联网 发布:淘宝关注店铺链接 编辑:程序博客网 时间:2024/06/01 07:51
STL中的容器:vector封装数组,list封装了链表,map和set封装了二叉树等。
set是关联式容器(关联容器是通过键存取和读取元素、顺序容器通过元素在容器中的位置顺序存储和访问元素),set作为一个容器也是用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。
set,multiset内部构造都是红黑树。
set常用操作:
插入操作:
1、insert(key_value); 将key_value插入到set中 ,返回值是pair<set<int>::iterator,bool>,bool标志着插入是否成功,而iterator代表插入的位置,若key_value已经在set中,则iterator表示的key_value在set中的位置。
2、inset(first,second); 将定位器first到second之间的元素插入到set中,返回值是void.
2、inset(first,second); 将定位器first到second之间的元素插入到set中,返回值是void.
int main(){int a[] = {1,2,3};set<int> s;set<int>::iterator iter;s.insert(a,a+3);for(iter = s.begin() ; iter != s.end() ; ++iter){cout<<*iter<<" ";}cout<<endl;pair<set<int>::iterator,bool> pr;pr = s.insert(5);if(pr.second){cout<<*pr.first<<endl;}return 0;}
删除操作:
erase(iterator) ,删除定位器iterator指向的值
erase(first,second),删除定位器first和second之间的值
erase(key_value),删除键值key_value的值
erase(first,second),删除定位器first和second之间的值
erase(key_value),删除键值key_value的值
int main(){set<int> s;set<int>::const_iterator iter;set<int>::iterator first;set<int>::iterator second;for(int i = 1 ; i <= 10 ; ++i){s.insert(i);}//第一种删除s.erase(s.begin());//第二种删除first = s.begin();second = s.begin();second++;second++;s.erase(first,second);//第三种删除s.erase(8);cout<<"删除后 set 中元素是 :";for(iter = s.begin() ; iter != s.end() ; ++iter){cout<<*iter<<" ";}cout<<endl;return 0;}
查找操作:
第一种方法是用find()
int main(){set<int> s;int n,x;cin>>n;s.insert(3); s.insert(4); s.insert(5);set<int>::iterator i;i=s.find(4);if(i==s.end())cout<<"Not Found!"<<endl;else cout<<*it<<endl;return 0;}//输出:4
第二种方法是用count(),count是计数的,存在返回1,不存在返回0(S中插入1,2,3)
int cnt = S.count(3);cout<<cnt<<endl;//输出1cnt = S.count(5);cout<<cnt<<endl;//输出0
set<int>::iterator it; //定义前向迭代器 //中序遍历集合中的所有元素 for(it = s.begin(); it != s.end(); it++) { cout << *it << " "; } cout << endl;
set<int>::reverse_iterator rit; //定义反向迭代器//反向遍历集合中的所有元素 for(rit = s.rbegin(); rit != s.rend(); rit++) { cout << *rit << " "; } cout << endl;multiset:
multiset中允许有重复元素。
其他操作:
c++ stl容器set成员函数:begin()--返回指向第一个元素的迭代器
c++ stl容器set成员函数:clear()--清除所有元素
c++ stl容器set成员函数:count()--返回某个值元素的个数
c++ stl容器set成员函数:empty()--如果集合为空,返回true
c++ stl容器set成员函数:end()--返回指向最后一个元素的迭代器
c++ stl容器set成员函数:equal_range()--返回集合中与给定值相等的上下限的两个迭代器
c++ stl容器set成员函数:erase()--删除集合中的元素
c++ stl容器set成员函数:find()--返回一个指向被查找到元素的迭代器
c++ stl容器set成员函数:get_allocator()--返回集合的分配器
c++ stl容器set成员函数:insert()--在集合中插入元素
c++ stl容器set成员函数:lower_bound()--返回指向大于(或等于)某值的第一个元素的迭代器
c++ stl容器set成员函数:key_comp()--返回一个用于元素间值比较的函数
c++ stl容器set成员函数:max_size()--返回集合能容纳的元素的最大限值
c++ stl容器set成员函数:rbegin()--返回指向集合中最后一个元素的反向迭代器
c++ stl容器set成员函数:rend()--返回指向集合中第一个元素的反向迭代器
c++ stl容器set成员函数:size()--集合中元素的数目
c++ stl容器set成员函数:swap()--交换两个集合变量
c++ stl容器set成员函数:upper_bound()--返回大于某个值元素的迭代器
c++ stl容器set成员函数:value_comp()--返回一个用于比较元素间的值的函数
c++ stl容器set成员函数:clear()--清除所有元素
c++ stl容器set成员函数:count()--返回某个值元素的个数
c++ stl容器set成员函数:empty()--如果集合为空,返回true
c++ stl容器set成员函数:end()--返回指向最后一个元素的迭代器
c++ stl容器set成员函数:equal_range()--返回集合中与给定值相等的上下限的两个迭代器
c++ stl容器set成员函数:erase()--删除集合中的元素
c++ stl容器set成员函数:find()--返回一个指向被查找到元素的迭代器
c++ stl容器set成员函数:get_allocator()--返回集合的分配器
c++ stl容器set成员函数:insert()--在集合中插入元素
c++ stl容器set成员函数:lower_bound()--返回指向大于(或等于)某值的第一个元素的迭代器
c++ stl容器set成员函数:key_comp()--返回一个用于元素间值比较的函数
c++ stl容器set成员函数:max_size()--返回集合能容纳的元素的最大限值
c++ stl容器set成员函数:rbegin()--返回指向集合中最后一个元素的反向迭代器
c++ stl容器set成员函数:rend()--返回指向集合中第一个元素的反向迭代器
c++ stl容器set成员函数:size()--集合中元素的数目
c++ stl容器set成员函数:swap()--交换两个集合变量
c++ stl容器set成员函数:upper_bound()--返回大于某个值元素的迭代器
c++ stl容器set成员函数:value_comp()--返回一个用于比较元素间的值的函数
参考:http://www.tuicool.com/articles/EnIZV3z
阅读全文
0 0
- stl set常用操作
- STL set 常用操作简介
- STL set 常用操作简介
- STL set 常用操作简介
- STL set 常用操作简介
- STL set 常用操作简介[转载]
- STL SET 常用操作简介[转载]
- STL SET 常用操作简介[转载]
- STL SET 常用操作简介[转载]
- STL set/multiset 常用函数
- STL set的基本操作
- set autotrace常用操作
- set常用操作简介
- set autotrace常用操作
- Set集合常用操作
- set常用操作
- STL常用操作
- STL map常用操作
- 2016华为笔试题
- 分布式事务(一)两阶段提交及JTA
- cocos2dx 植物大战僵尸 17 路障僵尸
- R语言调整支持向量机
- 趁便宜买了个地址
- stl set常用操作
- Samsung ARTIK 530 Image Update
- 依据地图上的经纬度坐标计算某个点到多边形各边的距离
- jQuery实现全选按钮
- log4j的使用与java中properties配置文件加载
- 两个Activity之间跳转时必然会执行的是哪几个方法?
- end_request: I/O error, dev mtdblock3, sector 0
- JavaScript学习笔记(一)
- Sub-process /usr/bin/dpkg returned an error code (1)的解决方法