2015-02-03 4 views
-2

Вот пример:Нужно ли очищать карту после назначения новой карты?

pair< map<int, string>, map<int, string> > test; 
test = data; 

Так что мне нужно вызвать clear метод до назначения? Например:

pair< map<int, string>, map<int, string> > test; 
test.first.clear(); 
test.second.clear(); 
test = data; 

Или первый пример верен без утечек памяти?

+2

Вы не выделяете какую-либо память «новым», что вы ожидаете утечки? – n0rd

+0

http://en.cppreference.com/w/cpp/container/map/operator%3D –

+0

«Так что мне нужно вызвать метод clear перед назначением?» Нет, вам не нужно очищать карты. Почему ты спрашиваешь? Лучше всего вы делаете тестовый пример для таких случаев, если вы не уверены и изучите инструмент, например valgrind (или изучите [справочную документацию] (http://en.cppreference.com/w/cpp/container/map/operator% 3D) на 1-ом месте). –

ответ

2

http://www.cplusplus.com/reference/map/map/map/

Карта конструктор - создает пустой контейнер без каких-либо элементов.

Пара - создает объект пары с инициализированными элементами.

Итак, я предполагаю, что утечки памяти нет, плюс вы не выделяете там никакой памяти.

Смежные вопросы