STL multiset容器
multiset容器的概念和性质
set在英文中的意义是:集合。而multi−前缀则表示:多重的。所以multiset容器就叫做:有序多重集合。
multiset的很多性质和使用方式和set容器差不了多少。而multiset容器在概念上与set容器不同的地方就是:set的元素互不相同,而multiset的元素可以允许相同。
所以,关于一些multiset容器和set容器的相同点,本篇博客就不加以赘述了。
与set容器不太一样的地方:
s.erase(k);
erase(k)
函数在set容器中表示删除集合中元素k。但在multiset容器中表示删除所有等于k的元素。
时间复杂度变成了 ,其中tot表示要删除的元素的个数。
那么,会存在一种情况,我只想删除这些元素中的一个元素,怎么办呢?
可以妙用一下:
if((it=s.find(a))!=s.end())
s.erase(it);
if中的条件语句表示定义了一个指向一个a元素迭代器,如果这个迭代器不等于s.end(),就说明这个元素的确存在,就可以直接删除这个迭代器指向的元素了。
s.count(k);
count(k)函数返回集合中元素k的个数。set容器中并不存在这种操作。这是multiset独有的。
本文作者:PassName
本文链接:https://www.cnblogs.com/spaceswalker/p/16025908.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步