NAMD
Array.h
Go to the documentation of this file.
1 
7 #ifndef ARRAY_H
8 #define ARRAY_H
9 
10 template <class Elem, int Size> class Array {
11 
12  public:
13  Elem data[Size];
14 
15  // constructor
16  Array(void) { ; }
17 
18  // destructor
19  ~Array(void) { ; }
20 
21  // copy constructor
22  Array(const Array<Elem,Size> &a2) {
23  for ( int i = 0; i < Size; ++i ) { data[i] = a2.data[i]; }
24  }
25 
26  // assignment operator
28  for ( int i = 0; i < Size; ++i ) { data[i] = a2.data[i]; }
29  return (*this);
30  }
31 
32  // set all elements to a given value (like 0)
33  Array(const Elem &v) {
34  for ( int i = 0; i < Size; ++i ) { data[i] = v; }
35  }
36  Array<Elem,Size> & operator= (const Elem &v) {
37  for ( int i = 0; i < Size; ++i ) { data[i] = v; }
38  return (*this);
39  }
40 
41  // element access
42  inline Elem & operator[](int index) { return data[index]; }
43  inline const Elem & operator[](int index) const { return data[index]; }
44 
45  // STL-style interface
46  typedef Elem* iterator;
47  iterator begin(void) { return &data[0]; }
48  iterator end(void) { return &data[0] + Size; }
49  typedef const Elem* const_iterator;
50  const_iterator const_begin(void) const { return &data[0]; }
51  const_iterator const_end(void) const { return &data[0] + Size; }
52 
53 };
54 
55 #endif
56 
Array< Elem, Size > & operator=(const Array< Elem, Size > &a2)
Definition: Array.h:27
Array(const Elem &v)
Definition: Array.h:33
Elem data[Size]
Definition: Array.h:13
const_iterator const_begin(void) const
Definition: Array.h:50
~Array(void)
Definition: Array.h:19
Elem & operator[](int index)
Definition: Array.h:42
const Elem & operator[](int index) const
Definition: Array.h:43
Array(void)
Definition: Array.h:16
iterator begin(void)
Definition: Array.h:47
Array(const Array< Elem, Size > &a2)
Definition: Array.h:22
Definition: Array.h:10
const_iterator const_end(void) const
Definition: Array.h:51
Elem * iterator
Definition: Array.h:46
const Elem * const_iterator
Definition: Array.h:49
iterator end(void)
Definition: Array.h:48