#include <ace/Containers.h>
template<class T> class ACE_Array_Base {
public:typedef T TYPE;typedef ACE_Array_Iterator<T> ITERATOR;ACE_Array_Base (size_t size = 0, ACE_Allocator *alloc = 0);ACE_Array_Base ( size_t size, const T &default_value, ACE_Allocator *alloc = 0 );ACE_Array_Base (const ACE_Array_Base<T> &s);void operator= (const ACE_Array_Base<T> &s);~ACE_Array_Base (void);T &operator [] (size_t slot);const T &operator [] (size_t slot) const;int set (const T &new_item, size_t slot);int get (T &item, size_t slot) const;size_t size (void) const;int size (size_t new_size);size_t max_size (void) const;int max_size (size_t new_size);private:int in_range (size_t slot) const;size_t max_size_;size_t cur_size_;T *array_;ACE_Allocator *allocator_;friend class ACE_Array_Iterator<T>;};
ACE_Array_Base (size_t size = 0, ACE_Allocator *alloc = 0);
ACE_Array_Base (
size_t size,
const T &default_value,
ACE_Allocator *alloc = 0
);
default_value.
ACE_Array_Base (const ACE_Array_Base<T> &s);
s, i.e., *this == s will
return true.
void operator= (const ACE_Array_Base<T> &s);
s, i.e., *this == s will
return true. Note that if the max_size_ of array_ is = than
s.max_size_ we can copy it without reallocating. However, if
max_size_ is s.max_size_ we must delete the array_,
reallocate a new array_, and then copy the contents of s.
~ACE_Array_Base (void);
T &operator [] (size_t slot);
slot. Doesn't
perform range checking.
const T &operator [] (size_t slot) const;
slot. Doesn't
perform range checking.
int set (const T &new_item, size_t slot);
slot. Returns
-1 if slot is not in range, else returns 0.
int get (T &item, size_t slot) const;
slot. Returns -1 if
slot is not in range, else returns 0. Note that this function
copies the item. If you want to avoid the copy, you can use
the const operator [], but then you'll be responsible for range checking.
size_t size (void) const;
cur_size_ of the array.
int size (size_t new_size);
new_size.
It copies the old contents into the new array.
Return -1 on failure.
size_t max_size (void) const;
max_size_ of the array.
int max_size (size_t new_size);
new_size.
It copies the old contents into the new array.
Return -1 on failure.
It does not affect new_size