OpenFPM_pdata  1.1.0
Project that contain the implementation of distributed structures
 All Data Structures Namespaces Functions Variables Typedefs Enumerations Friends Pages
vector_map_iterator.hpp
1 /*
2  * vector_map_iterator.hpp
3  *
4  * Created on: Apr 1, 2017
5  * Author: i-bird
6  */
7 
8 #ifndef OPENFPM_DATA_SRC_VECTOR_VECTOR_MAP_ITERATOR_HPP_
9 #define OPENFPM_DATA_SRC_VECTOR_VECTOR_MAP_ITERATOR_HPP_
10 
11 namespace openfpm
12 {
18  {
20  size_t end;
21 
22  protected:
23 
25  size_t gk;
26 
27  public:
28 
35  vector_key_iterator(size_t end, size_t start = 0)
36  : end(end),gk(start)
37  {}
38 
39 
48  {
50 
51  gk++;
52 
53  return *this;
54  }
55 
62  void set(int d, size_t sz)
63  {
64  // set the counter dim to sz
65 
66  gk = sz;
67  }
68 
76  bool isNext() const
77  {
78  if (gk < end)
79  {
81 
82  return true;
83  }
84 
86  return false;
87  }
88 
96  size_t get() const
97  {
98  return gk;
99  }
100  };
101 
108  template<typename lid>
110  {
112 
113  protected:
114 
116  size_t gk;
117 
118  public:
119 
126  :dp(dp),gk(0)
127  {}
128 
129 
138  {
140 
141  gk++;
142 
143  return *this;
144  }
145 
152  void set(int d, size_t sz)
153  {
154  // set the counter dim to sz
155 
156  gk = sz;
157  }
158 
166  bool isNext() const
167  {
168  if (gk < dp.size())
169  {
171 
172  return true;
173  }
174 
176  return false;
177  }
178 
186  size_t get() const
187  {
188  return dp.get(gk);
189  }
190  };
191 }
192 
193 
194 #endif /* OPENFPM_DATA_SRC_VECTOR_VECTOR_MAP_ITERATOR_HPP_ */
bool isNext() const
Check if there is the next element.
vector_key_iterator & operator++()
Get the next element.
vector_key_iterator_seq< lid > & operator++()
Get the next element.
size_t end
Linearized end element.
vector_key_iterator(size_t end, size_t start=0)
Constructor require the size of the vector.
void set(int d, size_t sz)
Set the dimension.
size_t size()
Stub size.
Definition: map_vector.hpp:70
bool isNext() const
Check if there is the next element.
vector_key_iterator_seq(openfpm::vector< lid > &dp)
Constructor require the sequence.
void set(int d, size_t sz)
Set the dimension.