Я хочу выполнить union
операцию между двумя multisets
.
Однако на данный момент мне удалось вычислить только для сохранения результата операции в std::vector
, а затем мне нужно преобразовать вектор в мультимножество.
Это преобразование из моих тестов очень дорого, и я бы хотел этого избежать, потому что мне нужен вывод как мультимножество.
Как мне этого добиться?
Код:
#include <iostream>
#include <set>
#include <vector>
#include <algorithm>
using namespace std;
int main () {
multiset<int> m, p;
m.insert(4);
m.insert(4);
m.insert(2);
m.insert(1);
m.insert(7);
p.insert(2);
p.insert(2);
p.insert(2);
p.insert(1);
p.insert(5);
vector<int> v;
set_union(m.begin(), m.end(), p.begin(), p.end(), back_inserter(v));
multiset<int> result(v.begin(), v.end());
multiset<int>::iterator it;
for (it=result.begin(); it!=result.end(); it++)
cout << *it << " ";
return 0;
}
Вывод 1 2 2 2 4 4 5 7
, как и ожидалось.