Bounded Array Storage

Bounded Array

Description

The 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.

Example

#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;
    }
}

Definition

Defined in the header storage.hpp.

Template parameters

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

Model of

Storage

Type requirements

None, except for those imposed by the requirements of Storage.

Public base classes

None.

Members

Member Where defined Description
value_typeContainer
pointerContainerDefined as value_type*
const_pointerContainerDefined as const value_type*
referenceContainerDefined as value_type&
const_referenceContainerDefined as const value_type&
size_typeContainerDefined as Alloc::size_type
difference_typeContainerDefined as Alloc::difference_type
iteratorContainerDefined as pointer
const_iteratorContainerDefined as const_pointer
revere_iteratorContainerDefined as std::reverse_iterator<iterator>
const_revere_iteratorContainerDefined 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 ).