代码之家  ›  专栏  ›  技术社区  ›  Brad

C++向量::清除()-破坏顺序?[复制品]

  •  3
  • Brad  · 技术社区  · 6 年前

    我已经搜索过了,没有发现任何东西——C++对STD::vector对象在调用vector:::()时会被删除的顺序提供了任何保证吗?

    我有一个向量,其中有些项依赖于向量中的其他项,因此需要确保清除后进先出。FIFO很好-我可以在调用clear()之前反转向量。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Hatted Rooster    6 年前

    根据 sequence container requirements ( std::vector 是其中之一)标准只说 clear() :

    销毁中的所有元素 a . 使所有引用、指针和 引用和的元素的迭代器可能使 在结束迭代器之后。

    确保: a.empty() 收益率 true .

    复杂性:线性。

    所以不,你不能保证毁灭的顺序。