___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll.
___ tag123stl ___ Die Standardvorlagenbibliothek (STL) ist eine C ++ - Bibliothek mit generischen Containern, Iteratoren, Algorithmen und Funktionsobjekten.
Als C ++ standardisiert wurde, wurden große Teile der STL in die Standardbibliothek übernommen, und diese Teile in der Standardbibliothek werden manchmal auch zusammen als "die STL" bezeichnet.
___ tag123map ___ Ein Wörterbuch (oder eine Karte) in der Informatik ist eine Datenstruktur, die Schlüssel auf Werte abbildet, so dass der entsprechende Wert eines Schlüssels effizient abgerufen werden kann. Bei Fragen zu Mapping-Funktionen über Datensammlungen verwenden Sie bitte das Tag [map-function]; und für Geographie, [Karten].
___ qstntxt ___
In einer effektiven STL von Scott Meyers (Seite 195) gibt es die folgende Zeile:
"Das Ergebnis von lower_bound muss getestet werden, um zu sehen, ob es auf den gesuchten Wert zeigt. Im Gegensatz zu find können Sie den Rückgabewert von lower_bound nicht einfach gegen den Enditerator testen."
Kann jemand erklären, warum Sie das nicht tun können? scheint gut für mich zu funktionieren.
___ qstnhdr ___ Teste den Rückgabewert von lower_bound gegen den Enditerator
___ tag123iterator ___ Ein Iterator ist ein objektorientiertes Programmiermuster, das das Durchlaufen einer Sammlung unabhängig von der tatsächlichen Implementierung oder Objektadressen im physischen Speicher ermöglicht. Es ist eines der Verhaltensmuster der Gang of Four.
___ answer8741117 ___
Es funktioniert gut für Sie, weil Ihr Element vorhanden ist.
%code% liefert einen Iterator an das erste Element nicht weniger als der angegebene Wert, und %code% gibt einen Iterator an das erste Element zurück größer als der angegebene Wert .
Gegeben sei das Array %code% , %code% gibt einen Iterator zurück, der auf 6 zeigt.
Daher gibt es zwei Möglichkeiten zu überprüfen, ob der Wert vorhanden ist:
-
Verwenden Sie %code% , um auch %code% zu erhalten (das separate Berechnen von %code% und %code% wird wahrscheinlich suboptimal sein). Wenn das %code% zwischen den Grenzen größer als 0 ist, ist das Element vorhanden.
%Vor%
-
Vergleichen Sie das Element, auf das der Iterator zeigt, mit Ihrem Wert (sofern die Operatoren %code% und %code% kohärent sind), aber Sie müssen sicherstellen, dass der Enditerator nicht zurückgegeben wird.
%Vor%
Da %code% außerdem ein binärer Suchalgorithmus ist, wäre es inkonsistent, %code% zurückzugeben, wenn das Element nicht gefunden wurde. Tatsächlich können die von diesem Algorithmus zurückgegebenen Iteratoren beispielsweise als Hinweis für eine nachfolgende Einfügeoperation verwendet werden.
___ tag123lowbound ___ In der Mathematik, insbesondere in der Ordnungstheorie, ist eine untere Schranke einer Teilmenge S einer teilweise geordneten Menge (K, ≤) ein Element von K, das kleiner oder gleich jedem Element von S ist.
___