【集合】C++ 数据结构 集合 set

工作也不想做,博客也不想写QAQ又是一个难熬的下午……
这个月的leetcode每日一题落下了好多,主要是动态规划我真不会,看题解基本也想不明白,DP我的一生之敌(x_x)


前言

这里要介绍一下顺序容器和关联容器的区别。顺序容器就是按照元素在容器中的位置,来进行保存和访问,例如vector、deque、list、forward_list、array、string,它们的共同特点是可以快速顺序访问元素;而关联容器中的元素按照关键字来进行保存和访问,例如set和map,因此它们不支持位置相关的操作,但是支持高效的关键字查找和访问。


一、集合是什么?

这里的集合和数学上的集合概念差不多,集合的主要特点有确定性(一个元素只能属于或不属于一个集合),互异性(即任意两个元素互不相同),和无序性(元素之间是无序的)。
而set数据结构的两大特点是

  1. set内部元素自动排序
  2. set内部元素唯一,无重复元素

要注意的是这里的排序是指,在set的内部是按元素值大小进行排序的,与元素的添加顺序无关。

二、定义和初始化

*注意:在使用时需要带头文件#include<set>

set<int> s;
set<int> s {
   1,2,3,4,5};
set<int> s(s1); //拷贝构造
set<int> s(v.begin(), v.end()); //v可以是同类型一维数组

三、读取数据

前面提到,集合不支持按照位置访问元素,所以一般可以这样读取集合内全部元素

set<int> s {
   1,3,2,5,4};
for(int i:s)
	cout
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值