2013-10-21 41 views
0

的向量說我有一個:在C++中如何移動範圍要素矢量

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],同時移動內部向量。

關於如何做到這一點的任何想法?也許有一個函數模板?

+0

我不知道我明白。當你使用std :: move_backward時出了什麼問題? – NapoleonBlownapart

+0

'move_backward'給出錯誤/空的值,但是'copy_backward'似乎有訣竅:) –

回答

0

這應該做你的描述:

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

內載體無特殊處理是必要的。