C++的set是基于红黑树实现的自动去重、升序排序关联容器,支持insert()返回值判重、自定义比较函数(如greater降序)、find/erase等O(log n)操作。

C++ 中的 set 是一个关联容器,自动去重且按升序排序(基于红黑树实现),无需手动排序或检查重复。它适合需要唯一、有序元素的场景,比如统计不重复关键词、维护有序ID列表等。
基本用法:定义、插入与遍历
包含头文件 <set></set>,定义 std::set<t></t>,插入用 insert(),遍历可用范围 for 或迭代器。
示例:存储整数并自动去重排序
#include <set>
#include <iostream>
using namespace std;
int main() {
set<int> s;
s.insert(5); // 插入 5
s.insert(2); // 插入 2
s.insert(5); // 再插 5 → 无效果(已存在)
s.insert(1); // 插入 1
for (int x : s) {
cout << x << " "; // 输出:1 2 5
}
}
登录后复制
去重原理:insert() 返回值判断
set::insert() 返回一个 pair<iterator bool></iterator>,其中 second 表示是否成功插入(true = 新元素,false = 已存在)。
立即学习“C++免费学习笔记(深入)”;
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~