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 番目の要素から後方に移動した後: outer-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]

基本的に、outer-index[1]は に配置され[2][3]元の に置き換えられ、[2]それに沿って inner-vector が移動します。

これを行う方法についてのアイデアはありますか?おそらく関数テンプレートを使用していますか?

4

1 に答える 1

0

これはあなたが説明したことをするはずです:

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

内部ベクトルの特別な操作は必要ありません。

于 2013-10-21T21:26:49.353 に答える