TPIE

2362a60
tpie::array_view_base< T > Class Template Reference

Base class for array_view. More...

#include <tpie/array_view_base.h>

Inherited by tpie::array_view< T >.

Classes

class  iterator
 

Public Types

typedef T value_type
 Type of values contained in the array. More...
 

Public Member Functions

 array_view_base (T *start, T *end)
 Pointer constructor. More...
 
iterator find (size_t idx) const throw ()
 Return an iterator to the i'th element of the array. More...
 
T & at (size_t i) const throw ()
 Return the element located at the given index. More...
 
bool empty () const
 Check if the array is empty. More...
 
size_t size () const
 Get number of elements in the array. More...
 
T & operator[] (size_t i) const
 Return a reference to an array entry. More...
 
bool operator== (const array_view_base &other) const
 Check if the other array has the same elements in the same order as this. More...
 
bool operator!= (const array_view_base &other) const
 Check if the two arrays differ. More...
 
iterator begin () const
 Return an iterator to the beginning of the array. More...
 
iterator end () const
 Return an iterator to the end of the array. More...
 
T & front () const
 Return the first element in the array. More...
 
T & back () const
 Return the last element in the array. More...
 

Detailed Description

template<typename T>
class tpie::array_view_base< T >

Base class for array_view.

This is needed so that a tpie::array can be constructed from an array_view_base and an array_view can be constructed from a tpie::array.

Definition at line 40 of file array_view_base.h.

Member Typedef Documentation

template<typename T>
typedef T tpie::array_view_base< T >::value_type

Type of values contained in the array.

Definition at line 73 of file array_view_base.h.

Constructor & Destructor Documentation

template<typename T>
tpie::array_view_base< T >::array_view_base ( T *  start,
T *  end 
)
inline

Pointer constructor.

The structure will produce the elements in the memory range [start, end).

Parameters
startPointer to first element of the array_view.
endPointer past the last element of the array_view.

Definition at line 68 of file array_view_base.h.

68 : m_start(start), m_end(end) {}
iterator end() const
Return an iterator to the end of the array.

Member Function Documentation

template<typename T>
T& tpie::array_view_base< T >::at ( size_t  i) const
throw (
)
inline

Return the element located at the given index.

Parameters
iThe index of the element returned.

Definition at line 91 of file array_view_base.h.

Referenced by tpie::array_view_base< const T >::operator!=(), tpie::array_view_base< const T >::operator==(), and tpie::array_view_base< const T >::operator[]().

91  {
92  assert(i < size());
93  return *find(i);
94  }
iterator find(size_t idx) const
Return an iterator to the i'th element of the array.
size_t size() const
Get number of elements in the array.
template<typename T>
T& tpie::array_view_base< T >::back ( ) const
inline

Return the last element in the array.

Definition at line 167 of file array_view_base.h.

167 {return *(m_end-1);}
template<typename T>
iterator tpie::array_view_base< T >::begin ( ) const
inline

Return an iterator to the beginning of the array.

Returns
An iterator to the beginning of the array.

Definition at line 150 of file array_view_base.h.

150 {return iterator(m_start);}
template<typename T>
bool tpie::array_view_base< T >::empty ( ) const
inline

Check if the array is empty.

Returns
True if and only if size is 0.

Definition at line 101 of file array_view_base.h.

101 {return m_end == m_start;}
template<typename T>
iterator tpie::array_view_base< T >::end ( ) const
inline

Return an iterator to the end of the array.

Returns
An iterator to the end of the array.

Definition at line 157 of file array_view_base.h.

157 {return iterator(m_end);}
template<typename T>
iterator tpie::array_view_base< T >::find ( size_t  idx) const
throw (
)
inline

Return an iterator to the i'th element of the array.

Parameters
iThe index of the element we want an iterator to.
Returns
An iterator to the i'th element.

Definition at line 81 of file array_view_base.h.

Referenced by tpie::array_view_base< const T >::at().

81  {
82  assert(idx <= size());
83  return iterator(m_start + idx);
84  }
size_t size() const
Get number of elements in the array.
template<typename T>
T& tpie::array_view_base< T >::front ( ) const
inline

Return the first element in the array.

Definition at line 162 of file array_view_base.h.

162 {return *m_start;}
template<typename T>
bool tpie::array_view_base< T >::operator!= ( const array_view_base< T > &  other) const
inline

Check if the two arrays differ.

Parameters
otherThe array to compare against.
Returns
false If they are equal otherwise true.

Definition at line 139 of file array_view_base.h.

139  {
140  if (size() != other.size()) return true;
141  for (size_t i=0; i< size(); ++i) if (at(i) != other.at(i)) return true;
142  return false;
143  }
T & at(size_t i) const
Return the element located at the given index.
size_t size() const
Get number of elements in the array.
template<typename T>
bool tpie::array_view_base< T >::operator== ( const array_view_base< T > &  other) const
inline

Check if the other array has the same elements in the same order as this.

Parameters
otherThe array to compare against.
Returns
True if they are equal, otherwise false.

Definition at line 127 of file array_view_base.h.

127  {
128  if (size() != other.size()) return false;
129  for (size_t i=0; i < size(); ++i) if (at(i) != other.at(i)) return false;
130  return true;
131  }
T & at(size_t i) const
Return the element located at the given index.
size_t size() const
Get number of elements in the array.
template<typename T>
T& tpie::array_view_base< T >::operator[] ( size_t  i) const
inline

Return a reference to an array entry.

Parameters
iThe index of the entry to return.
Returns
Reference to the entry.

Definition at line 115 of file array_view_base.h.

115  {
116  assert(i < size());
117  return at(i);
118  }
T & at(size_t i) const
Return the element located at the given index.
size_t size() const
Get number of elements in the array.

The documentation for this class was generated from the following file: