赞
踩
特点
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
中的迭代器是双向迭代器,通常只能初始化为begin
和end
。这是因为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 存储键值和关联值的映射。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。