在下面的代码片段中,谁能告诉我如何在类中不嵌入add函数的情况下打印函数值输出(3,4,5,6,7)。
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void add ( int i)
{
i=i+2;
}
int main()
{
vector <int> vec ={1,2,3,4,5};
for_each(vec.begin(), vec.end(),add);
for (auto i:vec)
{
cout<<i;
}
return 1;
}发布于 2013-12-10 07:31:43
为什么不简单地使用std::transform()呢?不需要add()函数。由于posted的add()函数没有副作用,因此无论如何都不能使用它。
std::vector<int> vec = { 1, 2, 3, 4, 5 };
std::transform(vec.begin(), vec.end(), vec.begin(),
[](int value) { return value + 2; });https://stackoverflow.com/questions/20482968
复制相似问题