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";
    }
    

Anmelden zum Antworten