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.
-
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).