c++ set容器

1.set容器

特点

1.1

set有集合的意思,与集合相似的是,在set这个容器中的元素是不重复的,如果重复输入了,那么也就录入一个值。

1.1.1set的基本用法   

  •  set<int>s;
  • 常见:
  • s.begin();          //返回set中第一个元素
  • s.rbegin();         //返回一个逆迭代器,返回最后一个元素的值
  • s.rend();           //返回一个逆迭代器,它指向容器c的第一个元素前面的位置.                             在 C++ STL 中,set容器的迭代器是双向迭代器,而rend()返回的是指向第一个元素所在位置前一个位置的反向双向迭代器。因此,set迭代器不能引用rend()具体来说,rend()返回的迭代器指向的位置是set容器的结束位置(超出最后一个元素),而set迭代器只能用于访问set容器中的元素,不能超出容器的范围。如果尝试使用set迭代器引用rend(),将会导致未定义的行为或错误。
  • 特殊 --》  s.end();            //并不是返回set中最后一个元素

    在 C++ 中,set迭代器不能引用end()的原因是end()返回的迭代器并不指向set中的任何元素,而是一个超过最后一个元素的位置。对end()迭代器进行解引用或其他操作会导致未定义的行为。

    set中的迭代器是双向迭代器,通常只能初始化为beginend。这是因为set的元素是按照特定的顺序排列的,迭代器用于遍历这些元素。

    如果需要访问set中的最后一个元素,可以使用rbegin()来获取反向迭代器,然后通过迭代器逐步向后移动来访问最后一个元素。

  • s.clear();          //清除set中所有元素
  • s.empty();          //判断set是否为空
  • s.insert();         //插入一个元素
  • s.erase();          //删除一个元素
  • s.size();           //返回当前set中元素个数
  • s.find();           //查找一个元素,若没有则返回s.end();

  • 其他:
  • s.lower_bound()      //返回第一个大于或等于给定关键值的元素
  • s.upper_bound()     //返回第一个大于给定关键值的元素
  • s.equal_range()      //返回一对定位器,分别表示 第一个大于或等于给定关键值的元素 和 第一个大于给定关键值 的元素,这个返回值是一个pair类型,如果这一对定位器中哪个返回失败,就会等于s.end()

1.1.2set集合中数值输入后就默认自动升序排列的。

1.2set 关联容器

set是关联式容器,关联式容器是 C++ STL 标准库提供的一种数据容器,与顺序容器不同,它们不是按照元素在容器中出现的顺序进行存储和访问。相反,它们将元素存储在根据特定规则进行排序的数据结构中,并提供了快速的查找和插入操作关联式容器中的每个元素都包含一个键值和一个关联值,其中键值用于排序和查找,而关联值则是实际存储的数据。STL 提供了四种关联式容器:set、multiset、map 和 multimap,其中 set 和 multiset 存储唯一的键值,而 map 和 multimap 存储键值和关联值的映射。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值