Ich habe die folgende Art:Wie kann ich auf eine std :: map-Eigenschaft in einem std :: vector-Iterator zugreifen?
typedef std::map<std::string, double> Tick;
und einen Vektor:
std::vector<Tick> dataSegment;
Ich möchte durch den Vektor zu durchlaufen und die Summe einer bestimmten Eigenschaft von jeder Karte Artikel berechnen:
double sum = 0.0;
for (std::vector<Tick>::iterator iterator = dataSegment.begin(); iterator != dataSegment.end(); ++iterator) {
sum += iterator->find("close");
}
Wenn ich dies jedoch tue, erhalte ich den folgenden Fehler:
error: invalid operands to binary expression ('double' and 'iterator' (aka '__map_iterator<__tree_iterator, double>, std::__1::__tree_node, double>, void *> *, long> >')) sum += iterator->find("close");
habe ich auch versucht:
for (std::vector<Tick>::iterator iterator = dataSegment.begin(); iterator != dataSegment.end(); ++iterator) {
sum += (*iterator).find("close");
}
aber dies erzeugt einen ähnlichen Fehler:
invalid operands to binary expression ('double' and 'iterator' (aka '__map_iterator<__tree_iterator, double>, std::__1::__tree_node, double>, void *> *, long> >')) sum += (*iterator).find("close");
'sf :: map :: find' gibt einen Iterator zurück, keinen Wert. – Hiura
Ah! Das stimmt, schauen Sie sich die Dokumentation an. Wie würde ich auf eine Immobilie zugreifen? –
Durch die Deferenzierung. – Hiura