为什么在std::deque
的一端插入一个元素会使所有现有的迭代器无效(尽管所有引用仍然有效)?
我知道双端队列是作为数组的数组实现的,并且在任一端推送元素都不会导致对现有元素的任何重新分配。这就是为什么引用仍然有效的原因。但是迭代器也应该如此。
我还了解到双端队列的迭代器的类型为 RandomAccessIterator ,并且该迭代器应支持某些操作,例如加/减常数,++等-
我不明白的是, RandomAccessIterator 应该支持哪些操作不能由std::deque
的基础结构实现。