双方向データ構造 (実際にはベクトル) 内の位置への通常の反復子があります。ここで、現在の位置から過去の x 要素に対して操作を実行したいと考えています。最後の x がベクトルの最初の要素である可能性がありますが、常に少なくとも x 個の要素が前に存在します。
私はこのコードを書きました
vector<Record>::iterator it = itCurrentRecord;
for (unsigned int i = 0; i < length; i++)
{
(it--)->length = length;
}
これは安全ですか?最初の要素を指している場合、最後のデクリメントにより、イテレーターが最初の要素の前の 1 つを指すようになるのではないかと心配しています。これは無効です。
もしそうなら、どうすればこれを安全な方法で書き直すことができますか?
ありがとう