const std :: mapboost :: tupel :: tuple, std :: string?

8
%Vor%

Mit boost - es ist möglich inst const std :: contains zum Testen usw. zu initialisieren Die Erstellung einer const std :: map oder std :: map ist ziemlich einfach, wie der obige Code zeigt. Ein const map<string, std::vector<int>> zu erstellen ist ein bisschen komplexer - aber immer noch ziemlich einfach.

Ich versuche mit const std::map<boost::tuples::tuple<string, string, string>, string> zu kommen, aber ich kann es nicht initialisieren. Hat sonst noch jemand Glück gehabt?

%Vor%     
Piotr Dobrogost 07.07.2009, 21:05
quelle

2 Antworten

22

Ich habe es versucht, und es schlägt fehl, weil die Schlüssel der Karte vergleichbar sein müssen (mit std::less , also muss ein operator< definiert sein). Die Vergleichsoperatoren von boost::tuple sind in der Kopfzeile boost/tuple/tuple_comparison.hpp definiert.

Wenn dieser Code enthalten ist, funktioniert dieser Code einwandfrei:

%Vor%     
Johannes Schaub - litb 07.07.2009, 22:17
quelle
0

Ich würde es versuchen

%Vor%

Aber, ehrlich gesagt, ist es vielleicht einfacher, nur drei getrennte Listen von Strings zu haben und sie dann einzeln in ein Tupel zu kombinieren und das zu einer Map hinzuzufügen.

    
rlbond 07.07.2009 21:29
quelle

Tags und Links