Je voudrais savoir s'il existe une bibliothèque std ou un outil boost pour fusionner facilement le contenu de plusieurs ensembles en un seul.
Dans mon cas, j'ai quelques ensembles de pouces que je voudrais fusionner.
Vous pouvez faire quelque chose comme:
std::set<int> s1;
std::set<int> s2;
// fill your sets
s1.insert(s2.begin(), s2.end());
On dirait que vous demandez std::set_union
.
Exemple:
#include <set>
#include <algorithm>
std::set<int> s1;
std::set<int> s2;
std::set<int> s3;
// Fill s1 and s2
std::set_union(std::begin(s1), std::end(s1),
std::begin(s2), std::end(s2),
std::inserter(s3, std::begin(s3)));
// s3 now contains the union of s1 and s2
regardez ce que std :: merge peut faire pour vous
Avec C++ 17, vous pouvez utiliser directement la fonction merge
de set
.
C'est mieux lorsque vous voulez que les éléments set2 soient extraits et insérés dans set1 dans le cadre de la fusion.
Comme ci-dessous:
set<int> set1{ 1, 2, 3 };
set<int> set2{ 1, 4, 5 };
// set1 has 1 2 3 set2 has 1 4 5
set1.merge(set2);
// set1 now has 1 2 3 4 5 set2 now has 1 (duplicates are left in the source, set2)