C++——set/multiset容器的基本概念,构造赋值与插入和删除

本文概述了C++中的Set和Multiset容器的基本概念,包括它们作为关联式容器的底层实现(二叉树),以及它们之间的区别(Set无重复元素,Multiset允许重复)。讲解了构造、赋值、大小与交换、插入和删除操作的方法和特性。
摘要由CSDN通过智能技术生成

1.set基本概念

简介:所有元素都会在插入时自动被排序

本质:set/multiset属于关联式容器,底层结构是用二叉树实现

set和multiset区别:
 set不允许容器中有重复的元素
 multiset允许容器中有重复的元素

2.set构造和赋值

功能描述: 创建set容器以及赋值

构造:
set<T> st;//默认构造函数:
set(const set &st);//拷贝构造函数
 赋值:
set& operator=(const set &st);//重载等号操作符 

    set<int>s1;

	//插入数据 只有insert方式
	s1.insert(10);

    //set容器特点:所有元素插入时候自动会被排序
	//set容器不允许插入重复值

//拷贝构造
	set<int>s2(s1);
//赋值
	set<int>s3;
	s3 = s2;

总结:
set容器插入数据时用insert
set容器插入数据的数据会自动排序

2. set大小和交换

功能描述:
 *统计set容器大小以及交换set容器
函数原型:
1.size();    //返回容器中元素的数目
2.empty(); //判断容器是否为空
3.swap(st);//交换两个集合容器
//因为set不允许重复值存在,所以set没有提供重新指定大小的函数(因为重新指定大小默认用0填充)

    set<int>s1;

	//插入数据
	s1.insert(10);
	s1.insert(20)
//判断是否为空
	if (s1.empty())
	{}
//容器元素的数目
 s1.size()
//交换
    s1.swap(s2);

总结:
* 统计大小 --size
* 判断是否为空 --empty
* 交换容器 --swap

3.set插入和删除

功能描述:
 set容器进行插入数据和删除数据
函数原型:
 1.insert(elem);     //在容器中插入元素
2. clear();              //清除所有元素
3. erase(pos);       //删除pos迭代器所指的元素,返回下一个元素的迭代器
4. erase(beg, end);//删除区间[beg,end)的所有元素,返回下一个元素的迭代器
5. erase(elem);      //删除容器中值为elem的元素。

    set<int>s1;

//1.插入
	s1.insert(30);
	s1.insert(10);
//3.删除
	s1.erase(s1.begin());//删除第一个
    //这里删除的是10,因为set会自动排序
//5.删除重载版本
	s1.erase(30);//给谁删谁
//删除区间
    s1.erase(s1.begin(), s1.end());
//2.清空
	s1.clear();//自带的清空接口

 总结:
 * 插入 --insert
 * 删除 --erase
 * 清空 --clear

仅个人看视频笔记与理解,如有误可指出谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值