我到处搜索并没有发现任何东西-C ++是否可以保证在调用vector :: clear()时删除std :: vector中的项目的顺序?
我有一个向量,其中某些项目取决于向量中的其他项目,因此需要确保已清除LIFO。 FIFO很好-我可以在调用clear()之前反转向量。
答案 0 :(得分:2)
根据sequence container requirements(std::vector
是其中之一),该标准仅对clear()
说:
销毁
a
中的所有元素。使所有引用,指针和 引用a的元素的迭代器,可能会使 过去的迭代器。确保:
a.empty()
返回true
。复杂度:线性。
所以不,您无法保证销毁顺序。