Vector Add的STL算法

STL algorithm for Vector Add

假设我有两个 vector<int>s:

vector<int> foo{1, 2, 3};
vector<int> bar{10, 20, 30};

现在我想对它们做一个矢量相加,结果是:

11
22
33

是否有可以处理此问题的 STL 算法,或者我是否需要使用 for 循环:

for(auto i = 0; i < foo.size(); ++i){
    foo[i] += bar[i];
}

奖金问题,如果我想做一些比添加更复杂的事情,假设 foovector<string>bar 仍然是 vector<int>。我希望,如果有我可以使用的 STL 算法,它也能支持 lambdas?

你想做的事可以用std::transform来实现。 你的情况:

std::transform(foo.begin(), foo.end(), bar.begin(), foo.begin(), std::plus<int>());

std::transform 也支持 lambda,因此您可以在 vector 元素之间进行更复杂的操作。