Ich bin über dieses Problem gestolpert: Ich kann nicht scheinen, das Einzelteil an der Indexposition in einem normalen std :: set auszuwählen. Ist das ein Fehler in STD?Element am Index in einem Std :: Set?
Im Folgenden ein einfaches Beispiel:
#include <iostream>
#include <set>
int main()
{
std::set<int> my_set;
my_set.insert(0x4A);
my_set.insert(0x4F);
my_set.insert(0x4B);
my_set.insert(0x45);
for (std::set<int>::iterator it=my_set.begin(); it!=my_set.end(); ++it)
std::cout << ' ' << char(*it); // ups the ordering
//int x = my_set[0]; // this causes a crash!
}
Alles, was ich tun kann, um das Problem zu beheben?
'my_set [0]' sollte nicht kompilieren. – chris
Sie stellen die falsche Frage, weil Sie den falschen Container verwenden. Jeder Standardcontainer wurde mit einer bestimmten Anzahl von Verwendungszwecken entworfen und lässt andere (direkt) nicht zu. Also, zuerst müssen Sie identifizieren, welche Operationen Sie benötigen, und dann [wählen Sie den richtigen Container] (http://stackoverflow.com/questions/10699265/how-can-i-efficiently-select-a-standard-library- container-in-c11/10701102 # 10701102) –
Mögliches Duplikat von [Element aus beliebigem Index in Menge holen] (http: // stackoverflow.com/questions/8907435/get-element-von-arbitrary-index-in-set) –