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

在C++中,for_each 是一个标准库算法,定义在 algorithm 头文件中。它用于对容器中的每个元素执行指定的操作(函数或函数对象)。相比传统的 for 循环,for_each 更加简洁、安全,并能与 Lambda 表达式结合使用,提升代码可读性。
std::for_each(开始迭代器, 结束迭代器, 操作)
下面的代码使用 for_each 遍历 vector 并打印每个元素:
#include <iostream><br>#include <vector><br>#include <algorithm><br><br>int main() {<br> std::vector<int> numbers = {1, 2, 3, 4, 5};<br><br> std::for_each(numbers.begin(), numbers.end(),<br> [](int n) {<br> std::cout << n << " ";<br> });<br> std::cout << std::endl; // 输出: 1 2 3 4 5<br> return 0;<br>}
你可以通过引用捕获来修改容器中的值:
立即学习“C++免费学习笔记(深入)”;
#include <iostream><br>#include <vector><br>#include <algorithm><br><br>int main() {<br> std::vector<int> numbers = {1, 2, 3, 4, 5};<br><br> std::for_each(numbers.begin(), numbers.end(),<br> [](int& n) {<br> n *= 2; // 将每个元素乘以2<br> });<br><br> // 打印结果<br> for (int n : numbers) {<br> std::cout << n << " "; // 输出: 2 4 6 8 10<br> }<br> std::cout << std::endl;<br> return 0;<br>}
你也可以传入一个普通函数作为操作:
#include <iostream><br>#include <vector><br>#include <algorithm><br><br>void printSquare(int n) {<br> std::cout << n * n << " ";<br>}<br><br>int main() {<br> std::vector<int> numbers = {1, 2, 3, 4, 5};<br> std::for_each(numbers.begin(), numbers.end(), printSquare);<br> std::cout << std::endl; // 输出: 1 4 9 16 25<br> return 0;<br>}
基本上就这些。使用 for_each 可以让遍历更清晰,尤其适合配合 Lambda 使用。注意它不会改变容器结构,但可以通过引用修改元素值。不复杂但容易忽略的是:记得包含 <algorithm> 头文件。
以上就是c++++中for_each怎么使用_c++ for_each函数使用示例的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号