Порядок уничтожения элементов контейнеров STL - PullRequest
21 голосов
/ 18 января 2010

Требует ли стандарт ISO C ++ какой-либо порядок уничтожения объектов внутри контейнеров STL?

  • Уничтожены ли элементы std::list / std::vector / std::map, начиная с начала или конца контейнера?
  • Могу ли я рассчитывать на std::map, хранящем его элементы внутри std::pair с, чтобы ключ в паре уничтожался до его значения (или наоборот)?

Ответы [ 2 ]

21 голосов
/ 18 января 2010
  1. Не указано в стандарте.
  2. Да, но это означает, что ключ уничтожается после его соответствующего значения.
5 голосов
/ 18 января 2010
  1. Не выбрано
  2. Да, вы можете зависеть от того, как std :: map хранит его элементы в std :: pair, но я не вижу ничего, что указывало бы на то, что часть Key std :: pair уничтожается перед частью Value.
...