首页 > 编程语言 > 详细

C++ STL SET使用手册

时间:2017-03-12 11:05:53      阅读:199      评论:0      收藏:0      [点我收藏+]

定义一个multiset集合S:
multiset <int> S;
如果有重复元素一定要记得使用multiset,stl set默认从小到大排序,upper_bound(x)返回集合中第一个大于x的元素地址,lower_bound(x)返回集合中第一个大于等于x的元素地址。
我们可以这样定义一个迭代器:multiset<int>::iterator it;
it指向一个内存地址,我们可以使it=S.begin();
如果要求it所指向元素的后继,可以it++。要求前驱可以it--。
则如果要求集合中第一个小于等于x的元素可以使:{it=S.upper_bound(X);it--;}(注意不要使it越界)
S.insert(X)     //插入一个元素X
S.clear()        //清空集合S
S.size()         //返回集合中元素的个数
S.empty()    //返回一个bool值表示集合是否为空

注意:erase()函数非常的坑。。
S.erase(X)    若X为一个元素的内存地址则删除这个内存地址上的元素
                    若X为一个元素,则删除S中所有等于这个元素的元素(注意是所有)

从小到大遍历整个集合S
multiset<int>::iterator it;
for(it=S.begin();it!=S.end();it++){             //注意结束条件是it!=S.end(),而不是<
        cout<<(*it)<<endl;
}

集合S中的最后一个元素:
 it=S.end();it--;                 //S.end()并不是S中最后一个元素的地址,所以要记得it--
 cout<<(*it)<<endl;

C++ STL SET使用手册

原文:http://www.cnblogs.com/rdzrdz-acm/p/6536998.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!