Interface Documentation
Version: invalid
set_intersection.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 
20 namespace flecsi {
21 namespace util {
22 
27 template<class InputIt1, class InputIt2>
28 bool
29 intersects(InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2) {
30  while(first1 != last1 && first2 != last2) {
31  if(*first1 < *first2) {
32  ++first1;
33  continue;
34  }
35  if(*first2 < *first1) {
36  ++first2;
37  continue;
38  }
39  return true;
40  }
41  return false;
42 }
43 
44 #if 0
45 template<class InputIt1, class InputIt2>
52 bool intersects(
53  InputIt1 first1, InputIt1 last1,
54  InputIt2 first2, InputIt2 last2)
55 {
56  while (first1 != last1)
57  if (std::binary_search(first2, last2, *first1++))
58  return true;
59  return false;
60 }
61 #endif
62 
63 } // namespace util
64 } // namespace flecsi
bool intersects(InputIt1 first1, InputIt1 last1, InputIt2 first2, InputIt2 last2)
Detect intersections of sorted lists.
Definition: set_intersection.hh:29
Definition: control.hh:31