iteratoren
-
Hallo,
irgendwie kapiere ich die Iteratoren noch nicht so ganz. Also:
std::find(anf, end, x<5), wobei anf und end Iteratoren sind. Das x soll das jeweilige Element des zu durchlaufenden Containers sein. Wie kann ich auf die einzelnen Elemente zugreifen? Durchwas muss ich das X ersetzen?
Danke,
Peter
-
hast du schon mal mit pointer/arrays gearbeitet? Arrays und Pointer
ein iterator ist etwas was versucht so zu tuen als ob es ein pointer auf ein array wäre
//z.b. int main() { std::vector<int> v; v.push_back( 5 ); v.push_back( 4 ); v.push_back( 3 ); v.push_back( 2 ); std::vector<int>::iterator res = std::find( v.begin(), v.end(), 2 ); if(res != v.end()) cout << "gefunden"; } // ist etwas abstrakt für int * find(int * begin, int * end, int what) { for(;begin != end; ++begin) { if(*begin == what) return begin; } return end; } int main() { int v[] = { 5, 4, 3, 2 }; int * begin = v; int * end = v + sizeof(v) / sizeof(v[0]); int * res = find( begin, end, 2 ); if(res != end) cout << "gefunden"; }