Interface Documentation
Version: invalid
set_utils.hh
Go to the documentation of this file.
1 /*
2  @@@@@@@@ @@ @@@@@@ @@@@@@@@ @@
3  /@@///// /@@ @@////@@ @@////// /@@
4  /@@ /@@ @@@@@ @@ // /@@ /@@
5  /@@@@@@@ /@@ @@///@@/@@ /@@@@@@@@@/@@
6  /@@//// /@@/@@@@@@@/@@ ////////@@/@@
7  /@@ /@@/@@//// //@@ @@ /@@/@@
8  /@@ @@@//@@@@@@ //@@@@@@ @@@@@@@@ /@@
9  // /// ////// ////// //////// //
10 
11  Copyright (c) 2016, Triad National Security, LLC
12  All rights reserved.
13  */
14 #pragma once
15 
18 #include <algorithm>
19 #include <set>
20 
21 namespace flecsi {
22 namespace util {
23 
34 template<class T>
35 inline std::set<T>
36 set_intersection(const std::set<T> & s1, const std::set<T> & s2) {
37  std::set<T> intersection;
38 
39  std::set_intersection(s1.begin(),
40  s1.end(),
41  s2.begin(),
42  s2.end(),
43  std::inserter(intersection, intersection.begin()));
44 
45  return intersection;
46 } // set_intersection
47 
58 template<class T>
59 inline std::set<T>
60 set_union(const std::set<T> & s1, const std::set<T> & s2) {
61  std::set<T> sunion;
62 
63  std::set_union(s1.begin(),
64  s1.end(),
65  s2.begin(),
66  s2.end(),
67  std::inserter(sunion, sunion.begin()));
68 
69  return sunion;
70 } // set_union
71 
82 template<class T>
83 inline std::set<T>
84 set_difference(const std::set<T> & s1, const std::set<T> & s2) {
85  std::set<T> difference;
86 
87  std::set_difference(s1.begin(),
88  s1.end(),
89  s2.begin(),
90  s2.end(),
91  std::inserter(difference, difference.begin()));
92 
93  return difference;
94 } // set_difference
95 
96 } // namespace util
97 } // namespace flecsi
std::set< T > set_union(const std::set< T > &s1, const std::set< T > &s2)
Definition: set_utils.hh:60
std::set< T > set_difference(const std::set< T > &s1, const std::set< T > &s2)
Definition: set_utils.hh:84
std::set< T > set_intersection(const std::set< T > &s1, const std::set< T > &s2)
Definition: set_utils.hh:36
Definition: control.hh:31