码迷,mamicode.com
首页 > 编程语言 > 详细

C++ STL SET使用手册

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

标签:使用   lower   nbsp   函数   地址   内存   手册   --   ++   

定义一个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使用手册

标签:使用   lower   nbsp   函数   地址   内存   手册   --   ++   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!