我有一个指向双向数据结构(实际上是向量)中某个位置的普通迭代器。现在我想从当前位置对过去的 x 元素执行操作。之前总是至少有 x 个元素,尽管最后一个 x 可能是向量的第一个元素。
我写了这段代码
vector<Record>::iterator it = itCurrentRecord;
for (unsigned int i = 0; i < length; i++)
{
(it--)->length = length;
}
这安全吗?我担心当它指向第一个元素时,最终递减会导致迭代器指向第一个元素之前的一个,这是无效的。
如果是这样,我怎样才能以安全的方式重写它?
谢谢