0Pricing
C++ Academy · Lektion

Nicht verändernde Algorithmen: find, count, all_of

Durchsuchen und prüfen Sie Containerinhalte, ohne sie zu verändern.

Nicht verändernde Algorithmen: find, count, all_of ist eine kostenlose C++ Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C++ Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.

Nur lesende Operationen

Nicht verändernde Algorithmen untersuchen einen Bereich, ohne ihn zu ändern. Sie befinden sich in <algorithm>.

std::find

Ermittelt das erste Element, das einem Wert entspricht. Gibt einen Iterator zurück – end, wenn kein Element gefunden wurde.

#include <algorithm>
std::vector<int> v = {3, 1, 4, 1, 5};
auto it = std::find(v.begin(), v.end(), 4);
if (it != v.end()) std::cout << "found at " << (it - v.begin());

std::find_if

Ermittelt das erste Element, das ein Prädikat erfüllt.

auto it = std::find_if(v.begin(), v.end(),
    [](int x) { return x > 3; });

std::find_if_not

Das Gegenstück zu find_if – ermittelt das erste Element, das ein Prädikat nicht erfüllt.

std::count und std::count_if

Zählt Vorkommen oder Elemente, die ein Prädikat erfüllen. Gibt ptrdiff_t zurück.

int n = std::count(v.begin(), v.end(), 1);            // count of 1s
int m = std::count_if(v.begin(), v.end(),
    [](int x) { return x > 2; });

std::all_of std::any_of std::none_of

Prüft ein Prädikat für den gesamten Bereich:

  • all_of – jedes Element erfüllt das Prädikat
  • any_of – mindestens ein Element erfüllt es
  • none_of – kein Element erfüllt es
bool allPositive = std::all_of(v.begin(), v.end(),
    [](int x) { return x > 0; });
bool anyEven = std::any_of(v.begin(), v.end(),
    [](int x) { return x % 2 == 0; });

std::equal

Vergleicht zwei Bereiche Element für Element.

std::vector<int> a = {1, 2, 3};
std::vector<int> b = {1, 2, 3};
bool same = std::equal(a.begin(), a.end(), b.begin());

std::mismatch

Ermittelt das erste Elementpaar, das sich zwischen zwei Bereichen unterscheidet. Gibt ein Paar von Iteratoren zurück.

std::adjacent_find

Ermittelt das erste Paar benachbarter, gleicher Elemente (oder das erste Paar, das ein Prädikat erfüllt).

std::vector<int> v = {1, 2, 2, 3};
auto it = std::adjacent_find(v.begin(), v.end());
std::cout << *it;   // 2

std::min_element std::max_element

Gibt einen Iterator auf das kleinste oder größte Element zurück. Übergeben Sie ein Prädikat, um anders zu vergleichen.

auto it = std::max_element(v.begin(), v.end());
std::cout << *it;

std::for_each

Ruft für jedes Element eine Funktion auf. Der Rückgabewert der Funktion wird ignoriert.

std::for_each(v.begin(), v.end(),
    [](int x) { std::cout << x << " "; });

Ranges-Versionen (C++20)

C++20 hat Range-Überladungen hinzugefügt, die einen einzelnen Bereich anstelle von zwei Iteratoren akzeptieren. Das sorgt für eine übersichtlichere Syntax.

#include <ranges>
auto it = std::ranges::find(v, 4);
bool ok = std::ranges::all_of(v, [](int x) { return x > 0; });

Schnelltest

Welcher Algorithmus gibt nur dann true zurück, wenn jedes Element ein Prädikat erfüllt?

Zusammenfassung

Nicht verändernde Algorithmen untersuchen Bereiche, ohne sie zu ändern: find, count, all_of/any_of/none_of, min_element, equal. C++20-Ranges bieten eine übersichtlichere Syntax für einzelne Bereiche.

Häufig gestellte Fragen

Ist die Lektion „Nicht verändernde Algorithmen: find, count, all_of“ kostenlos?

Ja — der vollständige Text von „Nicht verändernde Algorithmen: find, count, all_of“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C++ Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Nicht verändernde Algorithmen: find, count, all_of“?

Durchsuchen und prüfen Sie Containerinhalte, ohne sie zu verändern. Du übst C++ Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C++ Academy zu starten?

Keine Vorkenntnisse erforderlich. C++ Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Nicht verändernde Algorithmen: find, count, all_of“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C++ Academy-Lektion Code schreiben und ausführen?

Ja. Jede C++ Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Nicht verändernde Algorithmen: find, count, all_of
  2. Verändernde Algorithmen: transform, copy_if, replace
  3. Sortieren und Partitionieren: sort, stable_partition
  4. Numerische Algorithmen: accumulate, reduce, transform_reduce
← Zurück zu C++ Academy