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 markierenden 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.