find() ist ein sehr einfacher Algorithmus. Dieses Funktionstemplate importiert einen Bereichsanfangsiterator, einen Bereichsendeiterator und einen Wert vom Elementtyp des zu durchsuchenden Bereichs (Containers).

Der etwas vereinfachte Prototyp lautet:

template <typename T>
const Iterator find(const Iterator Anfang, const Iterator Ende, const T& Wert);
Den genauen Prototyp finden Sie beispielsweise in der sgi-Dokumentation.

Dieser Algorithmus sucht im Bereich [ Anfang, Ende ) nach dem ersten Element, welches "gleich" Wert ist. "Gleich" bedeutet, dass hierzu der Vergleichsoperator == verwendet wird. Dieser muss also auf dem Typ T definiert sein.

Wenn ein solches Element gefunden wird, liefert find() einen Eingabeiterator (const Iterator) zurück, der auf das gefundene Element zeigt. Andernfalls liefert find() den Endeiterator, was also soviel bedeutet wie "kein entsprechendes Element gefunden".

find() gehört zu den nichtmodifizierenden Algorithmen.
Das sind Algorithmen, die auf Container-Elemente nur lesend zugreifen, diese also nicht verändern.

Eine interessante Verallgemeinerung von find() ist der generische Algorithmus find_if().