Aleph-w  1.5a.2
Biblioteca general de algoritmos y estructuras de datos
 Todo Clases Archivos Funciones Variables 'typedefs' Enumeraciones Amigas Grupos Páginas
array_it.H
1 # ifndef ARRAY_IT_H
2 # define ARRAY_IT_H
3 
4 namespace Aleph {
5 
10  template <class T>
12 {
13  T * ptr;
14  size_t size;
15  int idx;
16 
17 public:
18 
19  T * get_base() { return ptr; }
20 
21  Array_Iterator(T * p = NULL, size_t sz = 0)
22  : ptr(p), size(sz), idx(0)
23  {
24  /* empty */
25  }
26 
27  bool has_curr() const { return idx >= 0 and idx < size; }
28 
29  bool has_current() const { return has_curr(); }
30 
31  T & get_curr()
32  {
33  if (idx < 0)
34  throw std::underflow_error("");
35 
36  if (idx >= size)
37  throw std::overflow_error("");
38 
39  return ptr[idx];
40  }
41 
42  T & get_current() { return get_curr(); }
43 
44  void next() { ++idx; }
45 
46  void prev() { --idx; }
47 
48  void reset() { idx = 0; }
49 
50  void reset_first() { reset(); }
51 
52  void reset_last() { idx = size - 1; }
53 };
54 
55 
56 } // end namespace Aleph
57 
58 
59 
60 
61 
62 # endif // ARRAY_IT_H
Definition: array_it.H:11

Leandro Rabindranath León