In C++ einen Vector vom Typ String, nach einer bestimmten Zeichenkette durchsuchen



  • Hallo Leute,

    ich möchte in C++ einen Vector vom Typ String, nach einer bestimmten Zeichenkette durchsuchen. Ich habe auch schon bei Vector die Methode find gefunden, also z.B. so
    vector1[i].find(.....), aber irgenwie funtioniert das nicht.

    Kann mir jemand einen Tipp geben?

    Danke schon mal in voraus.

    Grüsse



  • durch das indizieren des Vectors dursuchst du an der Stelle i den String im Vector (find ist eine funktion der Klasse String). Sonst kannst 'einfach' du ueber den Vector iterieren und die Eintraege vergleichen.



  • Für das Finden von X in einem Container<X> gibt es auch eine allgemeingültige Funktion:

    #include <algorithm>
    
    std::vector<std::string>::iterator element = std::find(vector1.begin(), vector1.end(), "...");
    if (element != vector1.end()) // gefunden!!
      // ...
    


  • Und wenn du keine exakte Übereinstimmung benötigst, kannst du auch find_if() verwenden:

    bool has_dots(const string& str)
    { return str.find("...") != string::npos; }
    
    ...
    pos=find_if(v.begin(),v.end(),has_dots);
    

Anmelden zum Antworten