新闻中心
C++ 如何使用 set_C++ set 集合容器基础用法
C++中set是基于红黑树的有序唯一元素容器,支持O(log n)插入、查找、删除。需包含头文件,常用操作包括insert、erase、find、count等,元素不可修改,可自定义排序如std::greater实现降序。

在 C++ 中,set 是一种关联式容器,用于存储唯一元素,并自动按升序排序。它基于红黑树实现,查找、插入和删除操作的时间复杂度为 O(log n),适合需要有序且不重复数据的场景。
包含头文件与定义 set
使用 set 需要包含头文件 #include
-
std::set
s; —— 创建一个存放整数的集合 - std::set<:string>words; —— 存放字符串的集合
常用操作方法
set 提供了多种成员函数来操作数据:
- insert(value):插入元素,若已存在则不执行插入
- erase(value):删除指定值的元素
- find(value):查找元素,返回迭代器,未找到返回 end()
- count(value):判断元素是否存在(返回 0 或 1)
- size():返回元素个数
- empty():判断是否为空
- clear():清空所有元素
示例代码:
#include <iostream>
#include <set>
int main() {
std::set<int> s;
s.insert(10);
s.insert(5);
s.insert(10); // 重复,不会插入
s.insert(15);
for (const auto& x : s) {
std::cout << x << " "; // 输出:5 10 15
}
if (s.find(10) != s.end()) {
std::cout << "\n找到了 10";
}
s.erase(5);
std::cout << "\n大小:" << s.size(); // 输出:2
return 0;
}
自定义排序规则
默认情况下,set 按升序排列。可以通过提供比较函数改变排序方式。例如降序:
VALL-E
VALL-E是一种用于文本到语音生成 (TTS) 的语言建模方法
134
查看详情
std::set<int, std::greater<int>> desc_set; desc_set.insert(10); desc_set.insert(5); desc_set.insert(15); // 遍历输出:15 10 5
也可以传入自定义结构体或类,需重载比较运算符或提供仿函数。
注意事项
set 中的元素是只读的,修改会影响排序结构,因此不能直接修改元素值。如需更新,应先删除再插入新值。
基本上就这些。掌握 insert、find、erase 和遍历操作,就能应对大多数使用场景。不复杂但容易忽略细节,比如重复插入无效、遍历时不能修改等。用熟了很顺手。
以上就是C++ 如何使用 set_C++ set 集合容器基础用法的详细内容,更多请关注其它相关文章!
# 头文件
# 律师营销推广开拓思路
# 怎么推广俱乐部营销方案
# 濮阳网站建设策划
# 关键词排名怎么做上
# 白坭网站建设热线
# 衢州网站建设方案
# 网站权重优化价格怎么算
# 江山网络推广seo优化
# 青山seo排名分析
# seo做的很好的网站
# 游戏开发
# 如何用
# word
# 遍历
# 是一种
# 如何使用
# 升序
# 自定义
# 如何实现
# 运算符
# 排列
# stream
# ios
# c++
# ai
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
抖音网页版平台入口 抖音网页版官网在线访问教程
电脑屏幕颜色不舒服怎么办_Windows夜间模式与色彩校准教程【护眼技巧】
迅雷下载到U盘速度很慢怎么办_迅雷U盘下载慢优化方法
优化大型XML文件解析:基于Python流式处理的内存高效方案
Excel如何用迷你图显趋势_Excel用迷你图显趋势【趋势小图】
在python-socketio事件处理器中安全访问Flask应用上下文
2025年云电脑操作系统体验 | 无需本地硬件,随时随地使用高性能PC
服务端验证_j*ascript输入检查
如何在J*a中实现统一对象行为接口_项目大型化时的接口规范化
火狐浏览器占用内存高卡顿怎么办 火狐浏览器性能优化设置技巧
使用Python高效删除Word宏并转换DOCM为DOCX格式
J*a里如何使用forEach遍历Map_Map遍历方法说明
Surface怎么安装系统 微软Surface Pro U盘重装win11教程
AO3官网镜像链接 Archive of Our Own同人文在线浏览
不会效仿卡普空!《铁拳》制作人澄清:不采取赛事付费|直播|
多闪网页版在线观看免费入口_多闪官网访问入口
如何为你的Composer包编写自动化测试_集成PHPUnit到Composer的scripts工作流
优化MinIO list_objects_v2 操作的性能瓶颈与最佳实践
在J*a中如何使用Stream.map转换元素_Stream映射操作解析
自定义Bag-of-Words实现:处理带负号的词汇权重
凉拌黄瓜怎么拌更入味 凉拌黄瓜简单家常做法
三星ZFold5多任务卡顿_Samsung ZFold5流畅度提升
响应式CSS Grid布局:优化网格项在小屏幕下的堆叠与宽度适配
Win10桌面图标出现小盾牌怎么办 Win10去除UAC图标教程【解决】
Typer应用中动态命令行参数的解析与处理
Golang如何实现Web接口签名验证_Golang Web接口签名校验开发方法
谷歌浏览器无痕模式怎么开 Chrome开启无痕浏览设置方法【教程】
J*aScript map 方法中处理循环元素为空数组的策略
QQ邮箱官方网页版登录 QQ邮箱个人邮箱快速访问
动漫共和国防屏蔽稳定域名-动漫共和国官方正版直达通道
如何在Promise链中有效终止错误处理后的执行
J*a递归快速排序中静态变量导致数据累积的陷阱与解决方案
Animex动漫社网入口地址 Animex动漫社网正版在线入口
智慧团建扫码登录入口 智慧团建扫码登录入口官网版
抖音创作助手登录入口_抖音创作辅助工具官网直达
Lar*el递归关系中排除子孙节点的策略
妖精动漫免费平台 妖精动漫官网资源观看网址
Flexbox布局实践:实现粘性导航栏与底部固定页脚
Safari自带网页翻译功能怎么用 无需插件轻松看懂外文网站【方法】
必由学官网快捷入口 必由学网页版在线学习平台
qq游戏跨平台入口_qq游戏多设备同步登录
蛙漫漫画官网在线入口 蛙漫全本漫画免费阅读平台
css子元素高度不一致导致布局错位怎么办_使用align-items:stretch解决高度差异
MongoDB Aggregation:在嵌套对象数组中精确匹配ObjectId
qq游戏手机版下载安装_qq游戏移动端入口
Win11截图该按哪些键 Win11截屏完整流程解析【教程】
地铁跑酷免费秒玩入口链接 地铁跑酷小游戏免费秒玩网站
小米汽车11月交付量突破40000台!雷军:将继续努力
HTML长属性值处理:表单action路径优化与代码规范应对
Angular中单选按钮的正确使用与常见陷阱解析


2025-11-05
浏览次数:次
返回列表