【问题标题】:how do I insert elements into a vector from right to left?如何从右到左将元素插入向量中?
【发布时间】:2021-02-10 03:29:02
【问题描述】:

假设我有一个由元素组成的向量:

1 2 3 4 5 6 7

我还有另一个向量,它包括:

9 8

将两者相加后,结果应该是:

9 8 1 2 3 4 5 6 7

这是我尝试做的:

v1.insert(v1.begin() + 0, 9); //at the beginning of v1 insert 9
v1.insert(v1.begin() + 0, 8); //at position 1 of v1 insert 8

for (int i = 7;i > 0;i--)
    {
     v1.insert(v1.end(), v2[i]);
    }

结果是987654321

【问题讨论】:

    标签: c++ arrays vector stl insert


    【解决方案1】:

    您正在从右到左遍历向量(i 7 向下到 0)。一种方法是从 0 到 7。另一种方法:

    for (int val : v2) {
      v1.push_back(v2);
    }
    

    v1.insert(v1.end(), v2.begin(), v2.end());
    

    【讨论】:

      【解决方案2】:

      使用 STL 的替代方法:

      std::copy(v1.begin(), v1.end(), std::back_inserter(v2));
      

      【讨论】:

        猜你喜欢
        • 2015-08-17
        • 1970-01-01
        • 2010-12-02
        • 2017-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-30
        • 1970-01-01
        相关资源
        最近更新 更多