老方法
set count<int> kun ;
//咱这就不实例化,所以说,这代码直接跑是跑不起来的
set<int>::iterator it; //set类型迭代器
for(it=order.begin();it!=order.end();it++){
cout<<*it<<endl; //遍历输出
}
在以前的方法中需要,建立set类型的迭代器,才能实现遍历,多少有点麻烦,现在,auto,出来了,懒孩子们得救了,具体看下面
新思路
set count<int> kun ;
for(auto i=order.begin() ;i!=order.end(); i++){
cout<<*i<<endl ;
}
再补充一点set的基础知识吧,方便以后自己查看
set关联式容器;set作为一个容器也是用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。应该注意的是set中数元素的值不能直接被改变。set的内部采用的是一种非常高效的平衡检索二叉树:红黑树,也称为RB树(Red-Black Tree)。RB树的统计性能要好于一般平衡二叉树,所以被STL选择作为了关联容器的内部结构。
常用方法:
1、begin(); 返回set容器的第一个元素,其中反向遍历用rbegin()
2、end(); 返回set容器的最后一个元素,其中反向遍历用rend()
3、clear(); 删除set容器中的所有的元素
4、empty(); 判断set容器是否为空
5、max_size(); 返回set容器可能包含的元素最大个数
6、size(); 返回当前set容器中的元素个数
6、Tip: 需要注意的是begin()和end()函数是不检查set是否为空的,使用前最好使用empty()检验一下set是否为空.
6、count(); 用来查找set中某个某个键值出现的次数。这个函数在set并不是很实用,因为一个键值在set只可能出现0或1次,这样就变成了判断某一键值是否在set出现过了。
7、erase(iterator); 删除定位器iterator指向的值
8、erase(first,second); 删除定位器first和second之间的值
9、erase(key_value); 删除键值key_value的值
10、insert(key_value); 插入元素