阅读量:85
C++ 中的 set 是一种关联容器,它包含一组唯一的对象。以下是 set 的一些主要特点:
- 唯一性:
set中的元素是唯一的,即每个元素只能出现一次。如果你尝试插入一个已经存在的元素,set不会对其进行任何操作。 - 自动排序:
set中的元素会自动按照某种排序规则进行排序。默认情况下,这个排序规则是按键(key)的自然顺序,但你也可以提供自定义的比较函数或对象来改变排序规则。 - 有序性:由于
set中的元素是自动排序的,因此你可以通过迭代器遍历set,并且迭代器会按照元素的顺序访问它们。 - 不支持下标运算符:与
vector和array不同,set不支持下标运算符(operator[])。你不能像访问数组元素那样访问set中的元素。要访问set中的元素,你需要使用迭代器或者find函数。 - 动态大小:与
array不同,set是一个动态容器,它可以根据需要自动调整大小。 - 内存管理:
set的内存管理是自动的,你不需要(也不能)手动分配或释放内存。 - 常量成员函数:
set提供了一些常量成员函数,如empty()、size()、find()等,这些函数可以在常量对象上调用。 - 迭代器:
set提供了双向迭代器,你可以使用这些迭代器遍历set中的元素。 - 范围循环:C++11 引入了基于范围的循环(range-based for loop),你可以使用这种循环来遍历
set中的元素,而无需显式地使用迭代器。
下面是一个简单的 set 示例:
#include
#include
int main() {
std::set<int> mySet = {1, 2, 3, 4, 5};
for (int num : mySet) {
std::cout << num class="hljs-string">" ";
}
return 0;
}
这个示例创建了一个包含整数的 set,并使用基于范围的循环遍历并打印其中的元素。注意,由于 set 中的元素是自动排序的,因此输出的数字将按照升序排列。