suche nach string innerhalb vector



  • Hallo,

    ich möchte wissen , ob es eine möglichkeit nach einem CString innerhalb eines vectores gäbe.Statt eine schleife.
    ich habe ein Vector der binhaltet million von CStrings, es wäre effektiver wenn eine funktion tut des.



  • #include <algorithm>
    
    ...
    
    vector<CString>::iterator it = find(vec.begin(),vec.end(),_T("suche"));
    
    if (it != vec.end())
    {
        AfxMessageBox(*it);
    

    }



  • Hallo

    Pellaeon schrieb:

    #include <algorithm>
    
    ...
    
    vector<CString>::iterator it = find(vec.begin(),vec.end(),_T("suche"));
    
    if (it != vec.end())
    {
        AfxMessageBox(*it);
    

    }

    Das ist doch eigentlich auch eine Schleife, oder wie wird das gemacht?

    chrische



  • Hallo,
    vielen dank.
    ist diese funktion schnller als die schleife? oder läuft irgendwie im hintergrung auch eine eineschleife?



  • auch das ist eine Schleife ja.

    Wenn du gezielt suchen willst, dann muss deine Datenmenge entsprechend "vorbehandelt" sein.
    Wenn die Strings z.B. geordnet im vector sind, dann kannst du die binäre Suchen benutzen. Oder du benutzt keinen vector sondern einen set-Container. Da ist ein ausgeglichener binärer Baum im Hintergrund. Da geht die Suche dann auch schneller.



  • es intressiert mich "set-Container"
    hast du ein beispiel dafür? und wie kann ich die strings binär vorbehandeln?
    Es ist ziemlich sher wichtig , weil meine Strings sind premiärschlussel in einer Datenbank und ich soll die doubelten raus filtern oder checken ob die vorhanden oder nicht.
    Ich hole die schlüssel(Strings)in vector und vergleiche die inhalte mit der neuen Strings becor ich sie in der tabelle einfügen.

    es gibt auch eine möglichkeit, dass ich lasse die Strings in der Datenbank als premierschlüssel und wenn doubelte wert eingefüget werden meldet der datenbank fehler und durch try and catch empfange ich den fehler und ordene die daten weiter .
    aber leider weiss ich nicht ich die try and catch richtig funktioniert mit der db.



  • ich will mehr über set container wiessen und auch try and catch mit db.
    das wird mein performanc sehr beeinflussen.



  • ich melde mich heute abend nochmal, ich muss leider gehen. mein sohn hat heute termin beim kinderarzt.
    also danke in voraus.





  • Wunderschön,
    es klappt und laäft wie eine achterbahn.
    mein performance ist 3 oder 4 fach verdoubelt.
    danke für das link oder für die , die es geschrieben haben.
    danke pellaeon.
    echt es war hilfreich.


Anmelden zum Antworten