Bounded Array StorageThe templated class bounded_array<T, N, ALLOC> implements a bounded storage array. The bounded array is similar to a C++ array type in that its maximum size is bounded by N and is allocated on the stack instead of the heap. Similarly a bounded_array requires no secondary storage and ALLOC is only used to specify size_type and difference_type.
When resized bounded_array never reallocated the storage. It is therefore always efficient to resize a bounded_array but the size bound N must not be exceeded.
#include <boost/numeric/ublas/storage.hpp>
int main () {
    using namespace boost::numeric::ublas;
    bounded_array<double, 3> a (3);
    for (unsigned i = 0; i < a.size (); ++ i) {
        a [i] = i;
        std::cout << a [i] << std::endl;
    }
}
Defined in the header storage.hpp.
| Parameter | Description | Default | 
|---|---|---|
T | 
The type of object stored in the array. | |
N | 
The allocation size of the array. | |
ALLOC | 
An STL Allocator | std::allocator | 
None, except for those imposed by the requirements of Storage.
None.
| Member | Where defined | Description | 
|---|---|---|
value_type | Container | |
pointer | Container | Defined as value_type* | 
const_pointer | Container | Defined as const value_type* | 
reference | Container | Defined as value_type& | 
const_reference | Container | Defined as const value_type& | 
size_type | Container | Defined as Alloc::size_type | 
difference_type | Container | Defined as Alloc::difference_type | 
iterator | Container | Defined as pointer | 
const_iterator | Container | Defined as const_pointer | 
revere_iterator | Container | Defined as std::reverse_iterator<iterator> | 
const_revere_iterator | Container | Defined as std::reverse_iterator<const_iterator> | 
bounded_array () | 
Storage | Creates an unbounded_array that holds zero elements. |  
bounded_array (size_type size) | 
Storage | Creates a uninitialized bounded_array that holds size elements. All the elements are default constructed. | 
bounded_array (size_type size, const T& init) | 
Storage | Creates an initialized bounded_array that holds size elements. All the elements are constructed from the init value. | 
bounded_array (const bounded_array &c) | 
Container | The copy constructor. | 
~bounded_array () | 
Container | Deallocates the bounded_array itself. | 
void resize (size_type size) | 
Storage | Reallocates a bounded_array to hold size elements. | 
void resize (size_type size, const T& t) | 
Storage | Reallocates a bounded_array to hold size elements. | 
size_type size () const | 
Container | Returns the size of the bounded_array. | 
const_reference operator [] (size_type i) const | 
Container | Returns a const reference of the i -th element. | 
reference operator [] (size_type i) | 
Container | Returns a reference of the i-th element. | 
bounded_array &operator = (const bounded_array &a) | 
Container | The assignment operator. | 
bounded_array &assign_temporary (bounded_array &a) | 
Assigns a temporary. May change the array a. | 
|
void swap (bounded_array &a) | 
Container | Swaps the contents of the arrays. | 
const_iterator begin () const | 
Container | Returns a const_iterator pointing to the beginning of the bounded_array. | 
const_iterator end () const | 
Container | Returns a const_iterator pointing to the end of the bounded_array. |  
iterator begin () | 
Container | Returns a iterator pointing to the beginning of the bounded_array. | 
iterator end () | 
Container | Returns a iterator pointing to the end of the bounded_array. | 
const_reverse_iterator rbegin () const | 
Reversible Container | Returns a const_reverse_iterator pointing to the beginning of the reversed bounded_array. | 
const_reverse_iterator rend () const | 
Reversible Container | Returns a const_reverse_iterator pointing to the end of the reversed bounded_array. | 
reverse_iterator rbegin () | 
Reversible Container | Returns a reverse_iterator pointing to the beginning of the reversed bounded_array. | 
reverse_iterator rend () | 
Reversible Container | Returns a reverse_iterator pointing to the end of the reversed bounded_array. | 
      Copyright (©) 2000-2004 Michael Stevens, Mathias Koch,
      Joerg Walter, Gunter Winkler
      Use, modification and distribution are subject to the
      Boost Software License, Version 1.0.
      (See accompanying file LICENSE_1_0.txt
      or copy at 
         http://www.boost.org/LICENSE_1_0.txt
      ).