标签:使用 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;
标签:使用 lower nbsp 函数 地址 内存 手册 -- ++
原文地址:http://www.cnblogs.com/rdzrdz-acm/p/6536998.html