Ich versuche, ein Paar mit einem Iterator aus einer Karte map <int, vertex> nodemap
genannt zurückzukehren aber ich in einen Fehler leite die sagt: error: invalid operands to binary expression ('std::map<int, vertex>::iterator' (aka '__map_iterator<typename __base::iterator>') and 'int') std::pair<int, vertex> node = *(it + v);
Ich versuche, eine Methode zu erstellen, die ein Paar mithilfe von Zeigerarithmetik zurückgibt, obwohl es einen Fehler gibt?
Unten ist mein Funktionscode:
std::pair<int, vertex> Graph::getMap(int v)
{
std::map <int, vertex>::iterator it = nodemap.begin();
std::pair<int, vertex> node = *(it + v);
return node;
}
ich diesen Zeiger gehe davon aus Arithmetik ist möglich und eine Karte besteht aus Paaren, wie in dieser Stack Question erwähnt.
Vielen Dank für Ihre Hilfe!
Suchen Sie das vth Element in der Karte oder für den Knoten mit Schlüssel v? – Jens
Knoten mit Schlüssel v –
Die Antwort von GWW. Holen Sie sich einfach das Element mit nodemap.find (v). std :: map ist ein assoziativer Container. – Jens