C++標準では、std::vector::insert
に渡されたイテレータのペアが元のシーケンスと重ならないように宣言していますか?overlapped vectors :: insertの動作
編集:手の込んだ、私は標準がこのような状況に対処するために、標準ライブラリを必要としないことをかなり確信している:
std::vector<int> v(10);
std::vector<int>::iterator first = v.begin() + 5;
std::vector<int>::iterator last = v.begin() + 8;
v.insert(v.begin() + 2, first, last);
しかし、私はそれがだろう、標準で何かを見つけることができませんでした範囲[first, last)
と[v.begin(), v.end())
が重複しないようにしてください。
ありがとう、これは私が探していたものです。 :-) – avakar
「p」ではなく「i」と「j」を意味することを確かめてください。 'p' *はベクトルへの反復子でなければなりません。 –
ロブをキャッチしてくれてありがとう。 –