for_each是C++标准库算法,定义于中,用于遍历容器并执行操作。它接受起始和结束迭代器及一个可调用对象(如函数、Lambda),对每个元素应用该操作。示例显示:可用Lambda打印元素、通过引用修改值、或传入普通函数处理数据。相比传统for循环,for_each更简洁安全,尤其适合与Lambda结合使用,提升代码可读性,且不改变容器结构但可修改元素值。

在C++中,for_each 是一个标准库算法,定义在 algorithm 头文件中。它用于对容器中的每个元素执行指定的操作(函数或函数对象)。相比传统的 for 循环,for_each 更加简洁、安全,并能与 Lambda 表达式结合使用,提升代码可读性。
基本语法
std::for_each(开始迭代器, 结束迭代器, 操作)
第一个参数是起始迭代器第二个参数是结束迭代器(不包含)第三个参数是一个可调用对象:函数指针、函数对象或 Lambda 表达式
示例1:使用Lambda表达式打印元素
下面的代码使用 for_each 遍历 vector 并打印每个元素:
#include
#include
#include
int main() {
std::vector numbers = {1, 2, 3, 4, 5};
std::for_each(numbers.begin(), numbers.end(),
[](int n) {
std::cout << n << " ";
});
std::cout << std::endl; // 输出: 1 2 3 4 5
return 0;
}
示例2:修改容器中的元素
你可以通过引用捕获来修改容器中的值:
立即学习“C++免费学习笔记(深入)”;
#include
#include
#include
int main() {
std::vector numbers = {1, 2, 3, 4, 5};
std::for_each(numbers.begin(), numbers.end(),
[](int& n) {
n *= 2; // 将每个元素乘以2
});
// 打印结果
for (int n : numbers) {
std::cout << n << " "; // 输出: 2 4 6 8 10
}
std::cout << std::endl;
return 0;
}
示例3:使用普通函数
你也可以传入一个普通函数作为操作:
#include
#include
#include
void printSquare(int n) {
std::cout << n * n << " ";
}
int main() {
std::vector numbers = {1, 2, 3, 4, 5};
std::for_each(numbers.begin(), numbers.end(), printSquare);
std::cout << std::endl; // 输出: 1 4 9 16 25
return 0;
}
基本上就这些。使用 for_each 可以让遍历更清晰,尤其适合配合 Lambda 使用。注意它不会改变容器结构,但可以通过引用修改元素值。不复杂但容易忽略的是:记得包含 头文件。
以上就是c++++中for_each怎么使用_c++ for_each函数使用示例的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1478750.html
微信扫一扫
支付宝扫一扫