set是基于红黑树的有序去重容器,支持O(log n)插入、删除与查找。1. 需包含头文件<set>,可自定义排序如std::greater;2. 支持列表、区间等初始化方式;3. 常用操作有insert、erase、find、count等;4. 遍历可用范围for循环或正向/反向迭代器;5. 元素不可修改,自定义类型需重载<运算符;6. multiset允许重复元素。熟练使用可高效处理有序唯一数据。

在C++中,set 是一个非常实用的关联式容器,它能自动对插入的元素进行排序,并保证元素的唯一性。set底层通常基于红黑树实现,因此插入、删除和查找操作的时间复杂度为 O(log n)。本文将详细介绍 set 容器的基本用法和遍历方式,帮助你高效使用它。
要使用 set,需要包含头文件 <set>。定义一个 set 非常简单:
std::set<int> mySet;
你也可以指定自定义排序规则,比如让 set 按降序排列:
立即学习“C++免费学习笔记(深入)”;
std::set<int, std::greater<int>> descendingSet;
支持的初始化方式包括:
set 提供了丰富的成员函数来管理数据:
示例:
mySet.insert(10);
mySet.insert(5);
mySet.insert(10); // 重复,不会插入
if (mySet.find(5) != mySet.end()) {
std::cout << "Found 5\n";
}
由于 set 中的元素是自动排序的,遍历时会按顺序访问。常用的遍历方式有以下几种:
使用 set 时需要注意一些细节:
例如定义结构体并用于 set:
struct Person {
std::string name;
int age;
bool operator<(const Person& p) const { return age < p.age; }
};
std::set<Person> people;
基本上就这些。掌握 set 的插入、查找和遍历,能大幅提升编码效率,尤其适用于去重和有序存储场景。不复杂但容易忽略细节,多练习几次就能熟练使用。
以上就是c++++ set容器的用法和遍历_c++ set容器使用指南的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号