Speicherart gesucht



  • Hallo zusammen,

    ich möchte Strings, genauer zu Funktionsnamen, eine bestimmte Anzahl von int-Werten zuweisen. Diese Zahlen stellen ihr Operatoren dar.

    Nun weiß ich leider nicht, wie ich dies am schönsten in C++ umsetzen soll. Eigentlich böten sich ja assoziative Arrays an, aber das gibt es ja standardgemäß nicht.

    Was empfehlt ihr mir?

    Vielen Dank
    LG, freakC++



  • Hallo,

    Das wäre doch eine map



  • Wo ist dein Problem?

    #include <iostream>
    #include <map>
    #include <vector>
    #include <string>
    
    typedef std::vector<int> IntVec;
    
    typedef std::map<std::string, IntVec> StringMap;
    
    int main()
    {
    	StringMap funcs;
    
    	funcs["name"].push_back(10);
    	funcs["name"].push_back(12);
    	funcs["name"].push_back(13);
    	funcs["name"].push_back(14);
    
    	funcs["asd"].push_back(4);
    
    	funcs["gfdg"].push_back(4);
    	funcs["gfdg"].push_back(3);
    	funcs["gfdg"].push_back(10);
    
    	for (StringMap::iterator it = funcs.begin(); it != funcs.end(); ++it)
    	{
    		std::cout << "Func: " << it->first << std::endl;
    
    		std::cout << "Count: " << it->second.size() << std::endl;
    
    		for (std::size_t i = 0; i < it->second.size(); ++i)
    		{
    			std::cout << "+ " << it->second[i] << std::endl;
    		}
    
    		std::cout << std::endl;
    	}
    
    	return 0;
    }
    


  • klöklö schrieb:

    ...

    push_back ? bei einem assoziativen Container ? Überleg nochmal 😉



  • out schrieb:

    klöklö schrieb:

    ...

    push_back ? bei einem assoziativen Container ? Überleg nochmal 😉

    Ach was schreib ich den, bezieht sich ja auf den vector, muss ich nochmal genau hinschauen ⚠



  • oh, genau das habe ich gesucht. Danke!

    Was ist das Problem bei push_back? Ich verwende den Befehl auch und bei mir funktioniert alles bestens.


  • Mod

    out hat sich bloß verlesen und dachte, das push_back wäre als Methode der map benutzt worden, die natürlich kein push_back kennt (da sie intern geordnet ist).


Anmelden zum Antworten