c++ set(集合)

  1. 集合中的元素有三个特征:
    1.1 确定性(集合中的元素必须是确定的)。
    1.2 互异性(集合中的元素互不相同)。
    1.3 无序性(集合中的元素没有先后之分)。
  2. set容器是由红黑树实现的。在这里我们尽量把STL容器当作黑箱子使用,不需要知道原理,会用就行。
  3. 由于set的一些特性,我们可以用来做一些特定的工作。十分方便。
2.4 主要函数的使用方法

2.4.1 声明一个set容器
set<int> s;

//下面用set<int> s作为例子 初始s:{1,2,3,4,5};
2.4.2 清空集合
s.clear();
//清空后的 s:{};

2.4.3 插入一个元素x
s.insert(x);
//如果x等于1,那么插入后的 s:{1,2,3,4,5};(互异性)
//如果x等于6,那么插入后的 s:{1,2,3,4,5,6};
前面我们提到set由树实现,那么插入一个元素的平均时间复杂度应该是O(logn)的,并且在用迭代器遍历set时,得到的元素应该是有序的。

2.4.4 查询集合里有无元素x
int hav = s.count(x);
同样,平均时间复杂度是O(logn)
因为set的特性,集合里要么有x(表示为1),要么没有(为0)。

2.4.5 在集合里找到x的位置,返回迭代器
set<int>::iterator it = s.find(x);
如果找到了x,那么it指向x所在的位置

2.4.6 遍历集合所有元素
for(set<int>::iterator it = s.begin();it!=s.end();it++)
{
int x = *it;cout<<x<<",";
}
或者
for(auto x:s)
{
cout<<x<<" ";//这里的x就是元素值
}
//两种方法输出的结果都是1,2,3,4,5,

2.4.7 判断是否为空集
bool isempty = s.empty();
2.4.8 求集合元素个数
int n = s.size();
2.4.9 删除元素x
s.erase(x);
//如果x等于4,那么删除后的集合 s:{1,2,3,5};


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值