Bitte beachten Sie MyHashMap ist meine angepasste hashmap. die Funktionalität ist das gleiche wie Std: hashmap Bitte beachten Sie MyVector ist Form von std :: vector anpassen. Die Funktionalität ist die gleiche wie std: Vektorist es in Ordnung, Vektor in einem Destruktor zu löschen
Ich will nicht Zeiger der M-Klasse M * korrekte
ist der folgende Code löschen oder yo sieht ein Problem in den gleichen
A::~A() {
EMapItr eMItr = p_Map.beginRandom();
for(; eMItr; ++eMItr) {
delete eMItr.value();
}
}
Auch tun wir den Vektor wie unten oder es wird automatisch versorgt E :: ~ E() { mv.clear() }
Ihr benutzerdefinierter Iterator 'EMapItr' bricht C++ 11 for-Schleifen. Insbesondere geht C++ 11 nun davon aus, dass Container eine Methode namens _exactly_ 'begin()' haben. Nicht 'beginRandom'. Sie können immer noch mehrere Möglichkeiten haben, einen einzelnen Container mit einem kleinen Trick zu durchlaufen: 'p_Map.randomView.begin()'. – MSalters