У меня есть карта как показано ниже.
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 ()? Что именно происходит внутри, когда вы называете это понятным? Может ли кто-нибудь дать небольшие внутренние данные?
Если вы запустите
outer_map.clear()
, все ключи (int
) и значения (unordered_map<int, A>
) будут удалены. Когда они удаляются, если есть какие-либо деструкторы для вызова, они будут вызваны. Это означает, что будет вызываться деструктор любого сохраненногоunordered_map<int, A>
', который, в свою очередь, удалит всеA
, вызвав их деструкторы.