array.has(...)??



  • hallo zusammen,

    ich bin gerade dabei, nen paar alte python-scripte in cpp umzusetzen (zur übung), wobei mir eins fehlte:

    kann man wenn man mit
    int mein_array[] = (1,3,4,5);
    irgendwie SCHNELL (also ohne for (int i=0;, ...) )
    herausfinden, ob ein array ein element (zb. 3) enthält?

    ich wusste leider wirklich nicht, wonach ich in diesem fall suchen sollte,
    da sowas in python immer mit
    for i in mein_array:
    ...
    gelöst wurde.

    dankeschön im voraus und
    liebe grüße
    hannes



  • Wenn das Array nicht gerade sortiert ist, wie willst du ohne Durchlaufen feststellen, ob ein Element im Array ist?



  • Hallo

    sieh zum Beispiel std::find, was intern natürlich auch bloß eine Schleife abläft.

    bis bald
    akari



  • Wenn du sicherstellen kannst, daß dein Array sortiert ist, funktioniert auch std::binary_search() (liefert eine Ja/Nein-Entscheidung) oder std::lower_bound() (liefert die Position des gesuchten Elements) - beide haben eine Laufzeit von O(log n).


Log in to reply