9 #include <unordered_set> 22 template <
typename Hasher,
24 typename TargetType =
typename Collection::value_type>
26 std::unordered_set<TargetType, Hasher> unique_set(left.begin(), left.end());
28 unique_set.insert(right.begin(), right.end());
29 return Collection(unique_set.begin(), unique_set.end());
42 template <
typename Set,
typename Merge>
43 Set
set_union(
const Set &left,
const Set &right, Merge &&merge) {
45 out.insert(left.begin(), left.end());
46 for (
auto &&tx : right) {
47 auto iter = out.find(tx);
48 if (iter != out.end()) {
62 template <
typename Set>
65 for (
auto &&element : left) {
66 if (right.find(element) == right.end()) {
73 #endif // IROHA_SET_HPP Set set_difference(const Set &left, const Set &right)
Definition: set.hpp:63
Set set_union(const Set &left, const Set &right, Merge &&merge)
Definition: set.hpp:43
auto merge_unique(Collection left, Collection right)
Definition: set.hpp:25
Definition: block_query.hpp:15