Как очистить unordered_map от unordered_map в c ++? - PullRequest
0 голосов
/ 05 июня 2018

У меня есть карта, как показано ниже.

struct  B {
  int b1;
  int b2;
  int b3;
};

struct A {
  B a1;
  B a2;
};

unordered_map<int, unordered_map<int, A>> outer_map;

Я заполнил это inner_map некоторыми элементами, каждый объект внутренней карты также получил инициализированные несколько элементов.

Так что мой вопрос, как сделатьВы очищаете external_map, чтобы я мог заново заполнить данные?

Работает external_map.clear ()?Что именно происходит внутри, когда вы здесь звоните?Может кто-нибудь дать небольшие внутренние детали?

1 Ответ

0 голосов
/ 05 июня 2018

Если вы запустите outer_map.clear(), ключи (int) и значения (unordered_map<int, A>) будут удалены.Когда они будут удалены, если есть какие-то деструкторы, которые нужно вызвать, они будут вызваны.Это означает, что будет вызван деструктор всех сохраненных unordered_map<int, A>, который, в свою очередь, удалит все A, также вызвав их деструкторы.

...