新闻中心

c++ STL算法库常用函数_c++ std::sort, find, for_each用法【速查】

2025-12-16
浏览次数:
返回列表
STL算法库是作用于容器的通用函数,不管理内存,需包含等头文件;sort要求随机访问迭代器并支持自定义比较,find线性查找返回迭代器,for_each遍历执行操作。

c++ stl算法库常用函数_c++ std::sort, find, for_each用法【速查】

STL 算法库不是容器,而是作用于容器的通用函数——它们不管理内存,只操作已存在的迭代器范围。用前记得 #include <algorithm></algorithm>sortfindfor_each 都在这里),部分还依赖 <iterator></iterator><functional></functional>

std::sort:高效排序,支持自定义规则

默认升序排列 [first, last) 范围内的元素,要求迭代器为随机访问(如 vector、array、deque 支持,list 不行)。

  • 基础用法:std::sort(v.begin(), v.end()); —— 对 vector v 升序排序
  • 降序排序:std::sort(v.begin(), v.end(), std::greater<int>());</int>
  • 自定义比较(lambda 更常用):std::sort(v.begin(), v.end(), [](int a, int b) { return a > b; });(降序)
  • 注意:元素类型必须可比较;若用自定义类型,需提供 operator 或传入比较函数

std::find:线性查找,返回首个匹配迭代器

在 [first, last) 中顺序查找值为 value 的元素,找到返回指向它的迭代器,否则返回 last

达芬奇 达芬奇

达芬奇——你的AI创作大师

达芬奇 166 查看详情 达芬奇
  • 基本写法:auto it = std::find(v.begin(), v.end(), 42);
  • 检查是否找到:if (it != v.end()) { /* 找到了,*it 就是 42 */ }
  • 对自定义类型,需重载 operator==;或改用 std::find_if 配合谓词(如按成员查找)

std::for_each:遍历执行操作,不改变容器结构

对 [first, last) 内每个元素调用可调用对象(函数、lambda、函数对象),常用于“只读+副作用”场景(如打印、统计、修改元素值)。

  • 简单打印:std::for_each(v.begin(), v.end(), [](int x) { std::cout
  • 修改元素(需传引用):std::for_each(v.begin(), v.end(), [](int& x) { x *= 2; });
  • 带状态的处理?建议用普通 for 循环或 lambda 捕获变量;for_each 本身不保证执行顺序(但绝大多数实现是顺序的)

基本上就这些——sort 排序、find 查找、for_each 遍历,三个最常用也最易上手。记住它们都靠迭代器工作,不关心容器类型,只要范围合法、操作符/谓词适配,就能用。

以上就是c++++ STL算法库常用函数_c++ std::sort, find, for_each用法【速查】的详细内容,更多请关注其它相关文章!


# 作用于  # 医院网站优化照片怎么做  # 小程序推广营销商有哪些  # 中堂文体用品网站优化  # 行业网站建设教学  # 深圳低价网站制作推广  # 南昌西湖展示型网站建设  # 保安网站建设方案范文  # 南湖便宜的网站建设  # 山西网站建设来啦  # 云南专业的seo排名  # 返回值  # 常用函数  # 如何实现  # 速查  # 最常用  # 升序  # 遍历  # 迭代  # 自定义  # 达芬奇  # 排列  # c++  # go 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 痛风发作了怎么办? 快速止痛和后期饮食调理  免费抖音短视频入口_抖音网页版短视频免费通道  Golang如何使用new_Go new分配内存机制讲解  c++中为什么推荐使用using替代typedef_c++现代化类型别名  蛙漫2日版入口 WAMAN2(日版)无删减漫画官网链接  印象笔记如何设提醒任务防漏执行_印象笔记设提醒任务防漏执行【任务提醒】  AO3最新官网入口公告_2025AO3镜像站实时查询方法  如何使用纯J*aScript判断Input元素是否在特定类容器内  Node.js中HTML按钮与J*aScript函数交互的正确姿势  斑马英语APP如何开启夜间护眼阅读_斑马英语APP夜间模式与低蓝光设置教程  c++中的const_cast和reinterpret_cast怎么用_c++四种类型转换  网易大神账号申诉需要多久_网易大神账号申诉流程说明  蛙漫官网漫画入口地址_蛙漫在线畅读无广告弹窗  c++中的std::basic_string的SSO优化_c++短字符串优化深度解析  Pygame教程:解决用户输入与游戏状态更新不同步问题  CSS子选择器:如何区分并样式化嵌套列表的子层级  TikTok搜索结果不显示如何解决 TikTok搜索刷新优化方法  J*aScript:在map操作中高效处理空数组  PHP 枚举:根据字符串获取枚举案例的策略与实现  cad怎么合并重叠的线段_cad清理重复重叠线条的操作方法  c++如何使用Catch2编写单元测试_c++简洁易用的BDD风格测试框架  谷歌浏览器无痕模式怎么开 Chrome开启无痕浏览设置方法【教程】  steam官方网页快速访问 steam账号注册全流程  《GTA6》开发画面疑似泄露!这次可不是AI了  KFC游戏互动怎么赢取优惠券_KFC线上游戏活动参与与优惠代码赢取教程  AO3访问入口汇总 AO3网页版同人作品一键直达  Python字典中优雅地迭代剩余元素的方法  J*a里如何实现线程安全的懒加载单例_懒加载单例实现方法解析  消息称三星明年 2 月正式发布 HBM4,与 SK 海力士同台竞技  如何使用spryker/configurable-bundles-products-resource-relationship模块解决复杂产品捆绑关系难题  离线运行Go语言之旅:本地部署与GOPATH配置指南  Composer如何处理Git子模块(submodule)依赖_Composer与Git Submodule的对比与选择  如何在Promise链中优雅地中断后续then执行  顺丰快递查单号物流信息 顺丰快递小程序查询入口  Go语言中JSON数据解析与字段访问教程  Excel函数批量查找替换超快方法_Excel用REPLACE和FIND函数秒级替换  ArrayList与LinkedList核心操作的Big-O复杂度分析  构建轻量级网站内部消息系统:Formspree 集成指南  红果短剧网页版官网入口 官方最新网址发布  解决 Express.js 中 PUT 请求密码修改失败的路由配置指南  Composer的 "licenses" 命令如何帮助你遵守开源协议_检查项目依赖的许可证合规性  《马克思佩恩3》早期版本曝光 UI设计曾多次调整!  抖音网页版快捷访问 抖音网页版网页版入口操作教程  双系统安装时,如何设置默认启动系统? msconfig命令了解一下!  Win11怎么隐藏桌面图标 Win11一键隐藏所有桌面元素及恢复显示  qq邮箱日历功能怎么用_创建日程与会议邀请的技巧  C++如何操作大型数据集_使用C++流式处理(Streaming)技术避免一次性加载大文件  深入理解字体排版:Adobe光学字偶距与CSS字偶距的差异与实现  《燕云十六声》两周内达九百万玩家!位居畅销榜第五  在Go Martini框架中高效服务动态生成图像的实践指南 

搜索