在c ++中如何移动矢量矢量的范围元素

时间:2013-10-21 20:33:37

标签: c++ vector multidimensional-array move stdvector

说我有:

std::vector<std::vector<int> > indices;

我填充它们,其中外部和内部向量的每个索引都有3个条目。现在我想做一些类似于在单个矢量容器上应用std:move_backward()的东西。

让我举个例子。这是我在以下索引中填充的初始容器:

[0][0][0][1][0][2] , [1][0][1][1][1][2] , [2][0][2][1][2][2] , [3][0][3][0][3][0]

从第i个元素向后移动后,在此示例中:外部索引[1],我会得到:

[0][0][0][1][0][2] , [1][0][1][1][1][2] , [1][0][1][1][1][2] , [2][0][2][1][2][2]

基本上,外部索引[1]放在[2]中,[3]替换为原始[2],随之移动内部向量。< / p>

关于如何做到这一点的任何想法?也许有一个功能模板?

1 个答案:

答案 0 :(得分:0)

这应该按照你的描述进行:

std::copy_backward(indices.begin()+1, indices.begin()+3, indices.end());

不需要对内部矢量进行特殊操作。