Как очистить unordered_map unordered_map в c ++?

jpb123 спросил: 12 мая 2018 в 03:55 в: c++

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

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.clear ()? Что именно происходит внутри, когда вы называете это понятным? Может ли кто-нибудь дать небольшие внутренние данные?

1 ответ

Есть решение
Alex ответил: 12 мая 2018 в 08:51

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