Ich habe diesen Code und ich kann den Teil nicht verstehen, in dem die Methode equal_range Iteratoren zurückgibt.
Ich weiß, Reichweite ist Paar Objekt mit zwei Multimap-Objekte im Inneren, aber was ich nicht verstehe, ist, warum gibt es 'for (it = range.first; it != range.second; ++it)'
- Was bedeutet das genau?
Die Iteratoren in dem Paar definieren den Bereich von Elementen mit Schlüsseln, die denen entsprechen, nach denen Sie in der Art [range.first, range.second)
gesucht haben.
Dies bedeutet, dass Sie, um über diesen Bereich zu iterieren, mit range.first
beginnen und den Iterator weiterführen, bis range.second
erreicht ist, was bedeutet, dass Sie gerade aus dem gleichen Bereich herausgekommen sind. Vom Konzept her ist es dasselbe wie das, was passiert, wenn Sie über einen Bereich [container.begin(), container.end())
iterieren.
equal_range
gibt ein Iteratorpaar i1, i2
zurück, so dass alle Elemente im Bereich [i1, i2)
denselben Schlüssel haben. Um also mit Code 718 durch alle Städte zu iterieren, rufen Sie equal_range
auf und iterieren dann vom first
des zurückgegebenen Paares zum second
des zurückgegebenen Paares.