vector find problem



  • hallo, ich habe einen vector
    zB

    {1,1,1,1,2,2,2,2,4,4,4,4,6,6,6,7}

    ich suche nun die 2 iteratoren, welche für gegebenen wert
    den anfang und das ende einer zusammenhängenen gruppe markieren

    den anfang findet man ja mit

    find(v.begin(),v.end(),element);
    

    aber das ende bekomme ich ned hin, ausser mit ner schleife, welche
    bei dem rückgabewert von find anfängt, und solange sucht bis sich das element ändert



  • Solange der Vektor sortiert ist, kannst du mit equal_range aus <algorithm> arbeiten:

    typedef vector<int>::iterator iterator;
    pair<iterator,iterator> its = equal_range(v.begin(), v.end(), element);
    

    Die beiden Iteratoren sind dann in its.first und its.second zu finden.


Anmelden zum Antworten