转移和复制std :: vector元素

时间:2014-03-12 16:04:02

标签: arrays vector position elements shift

我有一个元素数组,我想复制到另一个数组并将其移动1个位置。就这样:

void Blubb(){

    std::vector<double> array1(n);
    std::vector<double> array2(n+1);

    while(//a condition){
    //do some stuff

        for(int i = 0; i < (n+1); i ++){

            array1[i] = array2[i+1];

        }

        //do some more stuff
    }
}

array2中的第一个元素故意不属于array1。

有没有&#34;容易&#34;这样做的方法?容器类是否已提供类似的东西?或者我应该尝试其他课程吗?

2 个答案:

答案 0 :(得分:1)

看起来您忘记了std :: vector的模板参数。无论如何,尝试类似的事情:

std::vector<int> array2(n+1);
std::vector<int> array1(array2.begin()+1, array2.end());

答案 1 :(得分:0)

首先,您需要一个模板参数:将所有std::vector替换为std::vector<int>,将int替换为您正在使用的任何类型。 首先复制矢量:

std::vector<int> array2(n+1);
// fill the vector
std::vector<int> array1(array2);

(注意必须首先声明array2。)

其次,删除第一个元素:

array1.erase(array1.begin());

希望这有帮助!