unordered_map



  • Hallo und guten Morgen

    Eine Frage.

    Gibt es eine Möglichkeit um das Clearen der unord. Map zu beschleunigen?

    Ich hab mir vorgenommen, meine Parameterliste von Grund auf selber aufzustellen. Nun das können zwischen 5000 bis mehreren 100'000 einzelne Faktoren sein.

    Mit der unordered_map hab ich in Sachen Schnelligkeit und K,V-Zugriff ein gutes Werkzeug gefunden. Nur leider wenn ich die clear()-Methode einleite, geht das ewig lange, bis ich wieder ein neuer Aufbau einleiten kann.

    Hab ich da was übersehen? Oder weiss jemand eventuell ein besseres Werkzeug? Die erforderlichen Eigenschaften:
    - Schnelligkeit beim Aufbau
    - Schnelligkeit beim Abbau
    - K,V-Zugriff

    Danke für die Hilfe.

    wachs

    Hier noch ein wenig Beispiel-Code.

    #define MAX_MAP_ITEM 100000
    typedef std::unordered_map<int,double> tFaktorMap;
    
    int _tmain(int argc, _TCHAR* argv[]){
    	unsigned long StartTime = GetTickCount();
    
    	tFaktorMap fMap;
    
    	for(int i=0;i<MAX_MAP_ITEM;i++){
    		fMap[i]=i/1000+i; //(Beispiel!! Die einzelnen Werte
                              // stehen in Bezug zueinenader.)
    	}
    
    	unsigned long EndTime = GetTickCount();
    	unsigned long TimerValMS = EndTime - StartTime;
    	std::cout<<std::endl<<"Time: "<< TimerValMS<<"ms"<<std::endl;
    
    	StartTime = GetTickCount();
    	fMap.clear();
    
    	EndTime = GetTickCount();
    	TimerValMS = EndTime - StartTime;
    	std::cout<<std::endl<<"Time: "<< TimerValMS<<"ms"<<std::endl;
    
    	return 0;
    }
    


  • Das liegt daran, wie du dein Programm startest. Wenn ich ein Release-Build mache und mit STRG+F5 (without debugging) starte, brauche ich 0 ms.



  • Danke für die Antwort.

    Wenn ich Release konfigueriere ist er auf jeden Fall schneller.

    Hat sich erledigt. Hab heute die unordered_map als Vorgabe bekommen.

    wachs


Anmelden zum Antworten