Datenstrukturen in c++: Liste

in StemSocial2 months ago

In c++ gibt es drei verschiedene Arten von Listenstrukturen. Der vector ist ein Array, welches sich dynamisch anpasst, wenn keine Elemente mehr eingefügt werden können. Das heißt im Hintergrund werden dann immer alle Elemente eines Arrays einer alten Größe in ein neues Array mit einer neuer Größe eingefügt. Die forward_list ist eine einfach verkettete Liste die dynamisch neue Elemente einfügen und entfernen kann ohne die alten Elemente neu einzufügen. Die linked_list ist eine doppelt verkettete Liste.

Mehr zu Listen: https://steemit.com/deutsch/@ozelot47/datenstrukturen-liste-linked-list

void list(){
    /* elements will be added dynamically */
    std::forward_list<int> container;

    /* push elements to the front */
    for(int n = 0; n <= 20; n++){
        container.push_front(n);
    }

    /* elements can be added or removed after the initialization */
    container.push_front(666);

    /* lambdas can be used as well */
    auto isOdd = [](int &elem){return elem % 2 != 0;};
    container.remove_if(isOdd);

    /* loop the list with an iterator */
    for(auto it = container.begin(); it != container.end(); it++){
        std::cout << *it << "\n";
    }
}

int main(){
    list();
    return 0;
}