std::transform 使用笔记

📅 2026/7/10 13:03:26
std::transform 使用笔记
1. 说明std::transform在指定的范围内应用于给定的操作并将结果存储在指定的另一个范围内。以下是std::transform的两个声明一个是对应于一元操作一个是对应于二元操作template class InputIterator, class OutputIterator, class UnaryOperation OutputIterator transform (InputIterator first1, InputIterator last1, OutputIterator result, UnaryOperation op); template class InputIterator1, class InputIterator2, class OutputIterator, class BinaryOperation OutputIterator transform (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, OutputIterator result, BinaryOperation binary_op);2. 举例// transform algorithm example #include iostream // std::cout #include algorithm // std::transform #include vector // std::vector #include functional // std::plus int op_increase (int i) { return i; } int main () { std::vectorint foo; std::vectorint bar; // set some values: for (int i1; i6; i) { foo.push_back (i*10); // foo: 10 20 30 40 50 } bar.resize(foo.size()); // allocate space std::transform (foo.begin(), foo.end(), bar.begin(), op_increase); // bar: 11 21 31 41 51 // std::plus adds together its two arguments: std::transform (foo.begin(), foo.end(), bar.begin(), foo.begin(), std::plusint()); // foo: 21 41 61 81 101 std::cout foo contains:; for (std::vectorint::iterator itfoo.begin(); it!foo.end(); it) { std::cout *it; } std::cout \n; return 0; }参考文献transform - C ReferenceC/C11中std::transform的使用_网络资源是无限的-CSDN博客_std transform