首页 > 后端开发 > C++ > 正文

C++怎么使用std::algorithm库_C++常用算法函数sort、find、for_each

冰火之心
发布: 2025-11-21 18:12:05
原创
315人浏览过
std::sort、std::find 和 std::for_each 是 C++ 中常用算法,分别用于排序、查找和遍历操作,需包含 <algorithm> 头文件,作用于迭代器区间,提升代码简洁性与可读性。

c++怎么使用std::algorithm库_c++常用算法函数sort、find、for_each

在C++中,std::algorithm 库提供了大量实用的通用算法函数,它们作用于容器或数组的迭代器区间,极大简化了常见操作。要使用这些函数,需要包含头文件 <algorithm>,部分函数还需结合 <functional><iterator>。下面介绍几个最常用的算法函数:sort、find 和 for_each 的基本用法。

1. 排序:std::sort

std::sort 用于对指定范围内的元素进行排序,默认按升序排列。它要求容器支持随机访问迭代器(如 vector、array 等)。

基本语法:

  • std::sort(起始迭代器, 结束迭代器);
  • 可选第三个参数为比较函数或函数对象,用于自定义排序规则。

示例:

立即学习C++免费学习笔记(深入)”;

析稿Ai写作
析稿Ai写作

科研人的高效工具:AI论文自动生成,十分钟万字,无限大纲规划写作思路。

析稿Ai写作 142
查看详情 析稿Ai写作
#include <algorithm>
#include <vector>
#include <iostream>

std::vector<int> nums = {5, 2, 8, 1, 9};

// 升序排序
std::sort(nums.begin(), nums.end());

// 降序排序(使用 greater)
std::sort(nums.begin(), nums.end(), std::greater<int>());

// 自定义比较函数
std::sort(nums.begin(), nums.end(), [](int a, int b) {
    return a > b; // 降序
});
登录后复制

2. 查找:std::find

std::find 在指定范围内查找第一个等于给定值的元素,返回其迭代器;若未找到,则返回结束迭代器。

基本语法:

  • std::find(起始迭代器, 结束迭代器, 目标值);

示例:

立即学习C++免费学习笔记(深入)”;

#include <algorithm>
#include <vector>
#include <iostream>

std::vector<int> nums = {10, 20, 30, 40, 50};
auto it = std::find(nums.begin(), nums.end(), 30);

if (it != nums.end()) {
    std::cout << "找到元素:" << *it << std::endl;
} else {
    std::cout << "未找到" << std::endl;
}
登录后复制

注意:std::find 是基于值的比较,适用于基本类型和重载了 == 操作符的类类型。

3. 遍历执行:std::for_each

std::for_each 对范围内的每个元素执行指定的操作(函数、函数对象或 lambda 表达式),常用于无副作用的遍历处理。

基本语法:

  • std::for_each(起始迭代器, 结束迭代器, 函数);

示例:

立即学习C++免费学习笔记(深入)”;

#include <algorithm>
#include <vector>
#include <iostream>

std::vector<int> nums = {1, 2, 3, 4, 5};

// 使用 lambda 打印每个元素
std::for_each(nums.begin(), nums.end(), [](int n) {
    std::cout << n << " ";
});
std::cout << std::endl;

// 或者修改元素(注意:lambda 需捕获引用)
std::for_each(nums.begin(), nums.end(), [](int& n) {
    n *= 2;
});
登录后复制

与范围 for 循环相比,std::for_each 更适合配合算法风格编程,也便于传递函数对象或绑定逻辑。

基本上就这些。掌握 sort、find、for_each 能解决大多数基础数据处理问题。关键是理解它们都依赖迭代器,且不直接操作容器本身,而是操作一段元素区间。只要容器提供合适的迭代器,这些函数就能工作。不复杂但容易忽略细节,比如 find 返回的是迭代器而非索引,sort 默认是升序等。熟练使用后,代码会更简洁清晰。

以上就是C++怎么使用std::algorithm库_C++常用算法函数sort、find、for_each的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号