0

说我有一个:

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],同时移动内部向量。

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

4

1 回答 1

0

这应该做你所描述的:

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

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

于 2013-10-21T21:26:49.353 回答