„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Ist es gültig, Iteratoren aus verschiedenen Containern in C ++ zu vergleichen?

Ist es gültig, Iteratoren aus verschiedenen Containern in C ++ zu vergleichen?

Gepostet am 2025-03-25
Durchsuche:524

Is It Valid to Compare Iterators from Different Containers in C  ?

vergleicht Iteratoren aus verschiedenen Containern

Bei der Arbeit mit Containern sind es wichtig, die Implikationen des Vergleichs von Iteratoren aus verschiedenen Containern zu verstehen. Es stellt sich die Frage: Ist es zulässig, Iteratoren zu vergleichen, die zu verschiedenen Containern gehören?

Betrachten Sie den folgenden Code:

std::vector foo;
std::vector bar;
std::cout  

Wird der Ausdruck foo.ebegin () == bar.ebegin () rendern falsch oder führt zu undefiniertem Verhalten? Gleiche Sequenz

Abschnitt 24.2.1 gibt an, dass zwei Iteratoren, ich und j als erreichbar angesehen werden, wenn es eine endliche Sequenz von I -Operationen gibt, die ich gleich j. , wenn j erreichbar ist, von i, sie Referenzelemente aus derselben Sequenz. Containers

  • Forwarditeratoren, die RandomAccessiteratoren enthalten, unterliegen Abschnitt 24.2.5.
  • Dieser Abschnitt legt spezifiziert, dass == nur verwendet werden kann, um Iteratoren über dieselbe zugrunde liegende Sequenz zu vergleichen. Behavior.

lwg Ausgabe #446

    LWG Ausgabe #446 adressieren diese Frage ausdrücklich und schlägt die folgende Addition vor. R1 und R2 [...], die keine Unterdrückung eines gemeinsamen Bereichs sind, ist undefiniert, es sei denn, es wird ausdrücklich anders beschrieben. "
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3