在这种情况下我的 lambda 表达式应该是什么样子?我想添加 vector 不是 std::plus<>
但使用 lambda。
MatVect add_vectors(const MatVect& v1, const MatVect& v2)
{
MatVect v(v1.size());
std::transform(v1.cbegin(), v1.cend(), v2.cbegin(), v.begin(), [](){ return });
return v;
}
最佳答案
应该是这样的:
std::transform(v1.cbegin(), v1.cend(), v2.cbegin(), v.begin(), [](const int& i, const int& j){ return i + j; });
最小示例:
#include<iostream>
#include<vector>
using MatVect = std::vector<int>;
MatVect add_vectors(const MatVect& v1, const MatVect& v2)
{
MatVect v(v1.size());
std::transform(v1.cbegin(), v1.cend(), v2.cbegin(), v.begin(), [](const int& i, const int& j){ return i + j; });
return v;
}
int main()
{
MatVect mv1 = {1, 2, 3, 4, 5};
MatVect mv2 = {2, 4, 6, 8, 10};
MatVect mv3 = add_vectors(mv1, mv2);
for(auto const& i : mv3)
{
std::cout << i << " ";
}
return 0;
}
查看现场演示 here .
关于c++ - Lambda 表达式( vector 之和),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55567701/