[英]In c++ how to move range elements for a vector of vectors
說我有一個:
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個元素向后移動后,在此示例中:external-index [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]
替換為原始索引[1]
[2]
,將內部向量與其一起移動。
關於如何做到這一點的任何想法? 也許帶有功能模板?
這應該按照您的描述進行:
std::copy_backward(indices.begin()+1, indices.begin()+3, indices.end());
不需要對內部向量進行特殊處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.