multiset多重集合容器

multiset多重集合容器

同样使用红黑树来组织元素数据的,唯一不同的是,multiset允许重复的元素键值插入,而set则不允许。

image-20210803000906039

头文件包含“#include <set>”

它包含重复元素,所以,在插入元素、删除元素、查找元素上较set有差别。

使用

multiset元素的插入

#include<iostream>
#include<set>
using namesace std;

int main(){
    //定义元素类型为string的多重集合对象s,当前没有任何元素
	multiset<string> s;
	s.insert("abc");
	s.insert("111");
	s.insert("abc");
	
    //定义迭代器
	multiset<string>::iterator it;
	for(it=s.begin();it!=s.end();it++){
		cout<<*it<<endl;
	}
	return 0;
} 

multiset元素的删除

  • 采用erase()方法可以删除multiset对象中的某个迭代器位置上的元素、某段迭代器区间中的元素、键值等于某个值的所有重复元素,并返回删除元素的个数。
  • 采用clear()方法可以清空元素。
//删除值为“abc”的所有重复元素,返回删除元素总数2
int n = s.erase("abc");
cout<<n<<endl;

查找元素

使用find()方法查找元素

  • 如果找到,则返回该元素的迭代器位置(如果该元素存在重复,则返回第一个元素重复元素的迭代器位置)

  • 如果没有找到,则返回end()迭代器位置。

//查找键值“111”
multiset<string>::iterator it;
it=s.find("111");
if(it != s.end()){//找到
    cout<<*it<<endl;
}else{//没有找到
    cout<<"not find it"<<endl;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴风雨中的白杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值