std::transform(nums.begin(),nums.end(), std::back_inserter(squares), [](intnum){returnnum*num;}); 解析: 目的:同样是将nums中的每个元素转换为平方并存储到squares中。 优点: 使用std::back_inserter(squares)可以自动向squares添加新的元素,而无需事先知道
它能够将给定范围中的每个元素进行变换,并将变换后的结果存储到另一个范围中。换句话说,它可以通过应...
std::transform不会改变输入范围中的元素,而是将结果写入到另一个范围中。 如果没有提供输出迭代器,std::transform会使用std::back_inserter来在容器末尾插入新元素。 std::transform是一个非常灵活且强大的算法,可以用于多种数据变换场景。通过结合不同的函数对象,可以实现几乎任何类型的数据转换逻辑。
例如,您可以使用std::back_inserter将转换后的元素插入到另一个向量中,而不是修改原始向量。 以下是一个使用std::transform的示例: 代码语言:cpp 复制 #include<iostream> #include<vector> #include<algorithm> #include<iterator> int main() { std::vector<int> input = {1, 2, 3, 4, 5}; std::...
inserter(v2),begin(v1),end(v1));my_transform([](inta,intb){returna*10+b;},back_inserter...
return p_uiNumber*p_uiNumber;}// Entranceint main(){ vector<unsigned> vecUint; const unsigned uiElementNumber = 6U; for (unsigned i = 0U; i < uiElementNumber; ++i) { vecUint.push_back(i); } deque<unsigned> deqUint; transform(vecUint.begin(), vecUint.end(), back_inserter(deqUin...
end(), std::back_inserter(ordinals), [](unsigned char c) -> std::size_t { return c; }); std::cout << s << ':'; for (auto ord : ordinals) { std::cout << ' ' << ord; } } 输出: HELLO: 72 69 76 76 79 参阅 for_each 应用函数到范围中的元素 (函数模板) ...
(), ordinals.begin(),std::plus<>{});print_ordinals(ordinals);}intmain(){std::stringhello("hello");unary_transform_example(hello,"world");std::vector<unsigned>ordinals;std::copy(hello.cbegin(), hello.cend(),std::back_inserter(ordinals));binary_transform_example(std::move(ordinals)...
std::vector<std::size_t>name_sizes;///std::transform(names.begin(), names.end(), std::back_inserter(name_sizes), [](std::stringname) {returnname.size(); });for(auto value : name_sizes) { std::cout<< value <<"";//2 4 ...
std::transform函数是将某操作应用于指定范围的每个元素。 实例:将vector中的数据进行平方处理 // transform algorithm example #include <iostream>// std::cout #include <algorithm>// std::transform #include <vector>// std::vector ...