代码之家  ›  专栏  ›  技术社区  ›  Iter Ator

如何在插入过程中更改插入的值?

  •  10
  • Iter Ator  · 技术社区  · 6 年前

    我想插入向量中的值 b 到矢量 a ,并在插入期间将值乘以-1。目前我只是插入元素,然后将它们乘以-1:

    a.insert(std::end(a), std::begin(b), std::end(b));
    // ...
    

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

    我希望实现的目标:

    old a = {2,3,4}
    b = {3,4,5}
    
    a = {2,3,4,-3,-4,-5}
    
    1 回复  |  直到 6 年前
        1
  •  29
  •   lubgr    6 年前

    你可以用 std::transform 这样地:

    #include <algorithm>
    
    std::transform(std::cbegin(b), std::cend(b), std::back_inserter(a), std::negate<>());