Удаление всех значений из QMap

У меня есть QMap, состоящий из указателей на объекты классов, выделенных с помощью new, Мне нужно удалить все эти указатели. Как правильно сделать это с QMap? Я могу сделать это так:

QList<ClassName*> allVals = map.values();
for (QList<ClassName*>::iterator it = allVals.begin(), endIt = allVals.end(); it != endIt; ++it) {
delete *it;
}

Но есть ли лучший способ сделать то же самое?

10

Решение

Лучший способ сделать это — использовать qDeleteAll (…):

qDeleteAll( map );  //  deletes all the values stored in "map"map.clear();        //  removes all items from the map

qDeleteAll(...) может использоваться на всех контейнерах Qt. Таким образом, вам не нужно беспокоиться о цикле или об удалении элементов по отдельности.

22

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]