用lambda表达式写一个数组映射

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
	// 定义一个整数数组arr,包含五个元素:1, 2, 3, 4, 5。
	int arr[] = { 1, 2, 3, 4, 5 };
	// 定义一个空的向量result,用来存放映射后的结果。
	vector<int> result;
	// 调用transform函数,传入四个参数:
	// arr是源序列的起始位置,也就是指向第一个元素1的指针。
	// arr + 5是源序列的结束位置,也就是指向最后一个元素5之后的位置。
	// back_inserter(result)是目标序列的起始位置,也就是一个插入迭代器,它可以在result的末尾插入新元素。
	// [](int x) { return x * x; }是一个lambda表达式,它定义了映射函数,也就是把每个元素都平方。
	transform(arr, arr + 5, back_inserter(result), [](int x) {
		return x * x;
		});
	// 输出result向量中的元素
	for (int x : result) {
		cout << x << " ";
	}
	cout << endl;
	return 0;
}
posted @ 2023-03-23 17:46  朱英浩  阅读(58)  评论(0)    收藏  举报