Hier ist die Karte mit einem String-Schlüssel und einen Strukturwert 1. Zunächst eine Karte von Integer- und eine Struktur als Wert Ich schaffe std::map<int,struct value>;
und dann alle diese Karte Objekte auf einen Satz std::set<std::map<int,struct value>>
und ich möchte verstehen, wie diese eine Schleife durch stelle ich nicht in der Lage bin, die Karten zuzugreifen, die Teil dieses Satzes sind, schlagen Sie bittewie std :: set von std drucken :: Karten
struct values
{
std::string a;
std::string b;
values():a("milepost"),b("dummyval"){};
values(std::string ab, std::string bc)
{
a=ab;
b=bc;
};
bool operator<(const values& other) const {
return (a< other.a && b < other.b) ;
}
friend std::ostream& operator<<(std::ostream& os, const values& val);
};
std::ostream& operator<< (std::ostream& os , const values& val)
{
os << val.a <<"\t"<< val.b;
return os;
}
typedef std::map<std::string,values> myWsData;
main()
{
values a;
myWsData et_Data1,pt_Data2;
et_Data2.insert(std::make_pair("780256", a));
pt_Data2.insert(std::make_pair("780256", a));
std::set<myWsData> myet_pt_data;
myet_pt_data.insert(et_Data1);
myet_pt_data.insert(pt_Data2);
for (auto &i:myet_pt_data)
{
std::cout<<i<<"\n";
}
}
'Iam nicht in der Lage, die Karten zuzugreifen, die Teil dieser Set', beachten Sie bitte Detail .... was ist Ihr Problem: Zusammenstellung? Laufzeit? Was erlebst du, dass du sagst, dass es nicht funktioniert? – jpo38
Sie haben ein Problem mit einem weniger als zwei Kartenvergleich, nicht wahr? Was versuchst du wirklich zu lösen? –
@RichardHodges Ich denke (da er noch Lerner ist) sollten wir hinzufügen, dass der * less-than-Vergleich * notwendig ist, weil 'std: set' als * sortierte * Menge implementiert ist. Daher müssen wir eine Reihenfolge ihrer Elemente definieren, die dieser Code fehlt. – Christoph