我想知道在擦除任意元素后是否始终保留std :: vector容器元素的顺序(例如:push 0,1,2,3,erase 1,get 0,2,3)。
是的。还要注意复杂性(第23.3.6.5节):
复杂性:T的析构函数被称为等于被擦除元素数量的次数,但T的移动赋值运算符被称为等于擦除元素之后的向量中元素数量的次数。
和迭代器失效:
E ff ects:在擦除点或之后使迭代器和引用无效。
如果你不想通过标准查看这些细节,并且不自信,那么看看这个reference site。