set_union



  • Hallo,

    ich hab eine frage bezüglich set_union.
    und zwar hab ich zwei sets, die ich zusammen fügen will. das mache ich mit set_union

    set_union(t_test.begin(), t_test.end(), a_test.begin(), a_test.end(), inserter(tmp, tmp.begin()));
    t_test.swap(tmp);
    

    hierbei muss ich aber immer die kompletten inhalte der sets kopieren.
    gibt es noch eine bessere möglichkeit, a_test in t_test herinzubekommen??

    mfg

    gucky



  • Wenn du ohnehin bereits mit std::set -Containern arbeitest, könntest du deren insert() -Überladung für eine Iterator-Range benutzen. std::set erlaubt per Definition keine Duplikate, daher entspricht ein "insert" immer einem "union".

    Der STL-Algorithmus std::set_union() ist eher für sequentielle sortierte Container konzipiert.



  • danke 🙂


Anmelden zum Antworten