STL--set/multiset用法


multiset:

multiset<int>s;

定义正向迭代器与正向遍历:

multiset<int>::iterator it;
for(it=s.begin();it!=s.end();it++) {
	printf("%d\n",(*it));
}

定义反向迭代器与反向遍历:

multiset<int>::reverse_iterator rit;
for(rit=s.rbegin();rit!=s.rend();rit++) {
	printf("%d\n",-(*rit));
}

插入一个数x:

s.insert(x)

几种删除:

s.erase(v):删除值为v的所有元素。

s.erase(it):删除迭代器it处的元素。

也就是说可以用s.erase(s.find(v))来删除值为v的一个元素。

查找相关:

s.lower_bound(v):返回第一个大于等于v的迭代器指针。

s.upper_bound(v):返回第一个大于v的迭代器指针。

s.find(v):返回一个等于v的迭代器指针。如果不存在值等于v的元素,则返回s.end()

s.equal_range(v):返回值等于v的第一个迭代器和最后一个迭代器,左闭右开,如果不存在则返回两个s.end()

s.count(v):返回值等于v的元素个数,数据类型为unsigned longlong int,如果不存在返回0,时间复杂度未知,如果重复的个数过多可能会慢。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM