Algorithmen

qDeleteAll()

Container die Zeiger enthalten können mittels qDeleteAll() den reservierten Speicher freigeben. Dabei werden aber nicht die Elemente aus dem Container entfernt, sondern lediglich der delete-Operator auf jedes Element angewandt.
Folgendes Beispiel speichert Integer-Arrays in einer Liste, danach wird der Speicher freigegeben und die Liste geleert.

#include <QList>
 
int main()
{
  QList<int *> intarrays;
  for( int i = 0; i < 10; i++ )
    intarrays.push_back( new int[100] );
  qDeleteAll( intarrays );
  intarrays.clear();
  return 0;
}

Den obrigen Code kann man natürlich auch selbst implementieren:

#include <QList>
 
int main()
{
  QList<int *> intarrays;
  for( int i = 0; i < 10; i++ )
    intarrays.push_back( new int[100] );
  for( int i = 0; i < 10; i++ )
    delete[] intarrays.takeLast();
  return 0;
}