如何在插入期间更改插入的值?

Ite*_*tor 10 c++ stl vector c++11 c++14

我想将vector中的值插入bvector a,并在插入过程中将值乘以-1.目前我只是插入元素,然后将它们乘以-1:

a.insert(std::end(a), std::begin(b), std::end(b));
// ...
Run Code Online (Sandbox Code Playgroud)

如何在插入过程中获得负值,同时修改原始b矢量?

我想要实现的目标:

old a = {2,3,4}
b = {3,4,5}

a = {2,3,4,-3,-4,-5}
Run Code Online (Sandbox Code Playgroud)

lub*_*bgr 29

你可以std::transform像这样使用:

#include <algorithm>

std::transform(std::cbegin(b), std::cend(b), std::back_inserter(a), std::negate<>());
Run Code Online (Sandbox Code Playgroud)