Datenstrukturen in c++: Set (Menge)

avatar

Eine Menge (Set) ähnelt auf den ersten Blick einer Liste. Man kann dynamisch neue Elemente einfügen und entfernen. Allerdings haben Sets keine Indizes, was bei einer Liste der Fall ist. Das bedeutet, man kann ein Set nicht mit einem Index ansprechen. Dafür benötigt man einen Iterator, der alle Einträge "durchläuft". Weiterhin sind keine Duplikate erlaubt. Man kann auch einfacher Mengenoperationen auf Sets ausführen, wie z.B. Vereinigung, Differenz und Schnittmenge.

Die Theorie zu Sets: https://peakd.com/hive-196387/@ozelot47/datenstrukturen-das-set-menge

#include <iostream>
#include <set>

void set(){
    std::set<int> containerA;
    containerA.insert(1);
    containerA.insert(2);
    containerA.insert(3);
    containerA.insert(4);
    containerA.insert(5);

    std::set<int> containerB;
    containerB.insert(3);
    containerB.insert(6);
    containerB.insert(7);
    containerB.insert(6); // duplicate can't be added

    /* add all elements from B into A */
    for(auto it = containerB.begin(); it != containerB.end(); it++){
        containerA.insert(*it);
    }

    /* A set doesn't contain duplicates and has no indices.
       An iterator is needed or a foreach loop */
    for(auto& elem : containerA){
        std::cout << elem << "\n";
    }
}

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


0
0
0.000
0 comments