boxmoe_header_banner_img

Hello! 欢迎来到悠悠畅享网!

文章导读

c++中for_each怎么使用_c++ for_each函数使用示例


avatar
作者 2025年10月13日 6

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

c++中for_each怎么使用_c++ for_each函数使用示例

在C++中,for_each 是一个标准库算法,定义在 algorithm 头文件中。它用于对容器中的每个元素执行指定的操作(函数或函数对象)。相比传统的 for 循环,for_each 更加简洁、安全,并能与 Lambda 表达式结合使用,提升代码可读性

基本语法

std::for_each(开始迭代器, 结束迭代器, 操作)

  • 第一个参数是起始迭代器
  • 第二个参数是结束迭代器(不包含)
  • 第三个参数是一个可调用对象:函数指针、函数对象或 Lambda 表达式

示例1:使用Lambda表达式打印元素

下面的代码使用 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>} 

示例2:修改容器中的元素

你可以通过引用捕获来修改容器中的值:

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

c++中for_each怎么使用_c++ for_each函数使用示例

芦笋演示

一键出成片的录屏演示软件,专为制作产品演示、教学课程和使用教程而设计。

c++中for_each怎么使用_c++ for_each函数使用示例34

查看详情 c++中for_each怎么使用_c++ for_each函数使用示例

 #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>} 

示例3:使用普通函数

你也可以传入一个普通函数作为操作:

 #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> 头文件。



评论(已关闭)

评论已关闭

text=ZqhQzanResources