c++ vector transform
时间: 2023-10-22 14:05:57 浏览: 182
你可以使用C++中的std::transform函数来对一个vector中的元素进行转换操作。这个函数接受四个参数:源容器的起始迭代器、源容器的结束迭代器、目标容器的起始迭代器以及一个函数对象(或lambda表达式),用于指定转换操作。下面是一个示例代码,展示如何使用std::transform函数对一个vector中的元素进行转换:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int square(int x) {
return x * x;
}
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5};
std::vector<int> squared_nums;
std::transform(nums.begin(), nums.end(), std::back_inserter(squared_nums), square);
std::cout << "Original numbers: ";
for (int num : nums) {
std::cout << num << " ";
}
std::cout << std::endl;
std::cout << "Squared numbers: ";
for (int num : squared_nums) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
上述代码中,我们定义了一个名为square的函数,用于计算给定整数的平方。然后,我们使用std::transform函数对nums向量中的每个元素应用square函数,并将结果存储在squared_nums向量中。最后,我们分别打印原始数字和平方后的数字。
请注意,std::transform函数不会修改源容器中的元素,而是产生一个新的容器来存储转换后的结果。如果你希望在源容器中直接进行转换,可以使用std::for_each函数或手动循环遍历。
阅读全文