Integer Vector durchsuchen



  • Guten Tag

    Ich habe mich gefragt ob es mit einem Befehl möglich ist einen Integer Vector zu durchsuchen, also einfach ob eines der Arrays diesen Wert hat. Ich mache es bis jetzt mit for Schleifen, aber das kommt mir irgendwie nicht so elegant vor.

    Wenn es nicht möglich ist, schreibt einfach "nein", es Funktionierte bisher auch so 😉



  • Hallo

    Für std::vector und C-Arrays gibt es std::find.

    bis bald
    akari



  • Hmmm.. Ok, es lässt sich schon mal Fehlerfrei ausführen, aber irgendwie funktioniert es noch nicht so ganz. Ich habe ein Unterprogramm das den Wert heraussucht und die Position zurücksendet, oder eben nicht. Aber der iterator ist anscheinend ein Integer Array und ich habe keine Ahnung was ich nun damit machen soll. So wie ich es gerne möchte geht es jedenfalls nicht:

    int srch(int Index)
    {
      iterator itr;
      std::vector <int> vct;
    
      if((itr=find(vct.begin(),vct.end(),Index))!=vct.end())
      {
         return(itr);
      }
      else return(-1);
    }
    


  • Hallo

    Ein Iterator int C++ sollte nicht mit einem Array, sondern mit einem Zeiger verglichen werden. Deshalb reicht es, wenn du für die Rückgabe einfach den Iterator "dereferenzierst".

    return *itr; // Klammern für return sind in C++ nicht mehr nötig
    

    bis bald
    akari



  • Perfekt, danke!


Anmelden zum Antworten