Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

Unbounded Array Storage

Unbounded Array

Description

The templated class unbounded_array<T, ALLOC> implements a unbounded storage array using an allocator. The unbounded array is similar to a std::vector in that in can grow in size beyond any fixed bound. However unbounded_array is aimed at optimal performance. Therefore unbounded_array does not model a Sequence like std::vector does.

When resized unbounded_array will reallocate it's storage even if the new size requirement is smaller. It is therefore inefficient to resize a unbounded_array

Example

#include <boost/numeric/ublas/storage.hpp>

int main () {
    using namespace boost::numeric::ublas;
    unbounded_array<double> 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.
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>
allocator_typeDefined as ALLOC
explicit unbounded_array (ALLOC &a = ALLOC()) Storage Creates an unbounded_array that holds zero elements, using a specified allocator.
explicit unbounded_array (size_type size, ALLOC &a = ALLOC()) Storage Creates a uninitialized unbounded_array that holds size elements, using a specified allocator. All the elements are default constructed.
unbounded_array (size_type size, const T& init, ALLOC& a = ALLOC()) Storage Creates an initialized unbounded_array that holds size elements, using a specified allocator. All the elements are constructed from the init value.
unbounded_array (const unbounded_array &a) Container The copy constructor.
~unbounded_array () Container Deallocates the unbounded_array itself.
void resize (size_type n) Storage Reallocates an unbounded_array to hold n elements. Values are uninitialised.
void resize(size_type n, const T& t) Storage Reallocates an unbounded_array to hold n elements. Values are copies of t
size_type size () const Container Returns the size of the unbounded_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.
unbounded_array &operator = (const unbounded_array &a) Container The assignment operator.
unbounded_array &assign_temporary (unbounded_array &a) Assigns a temporary. May change the array a.
void swap (unbounded_array &a) Container Swaps the contents of the arrays.
const_iterator begin () const Container Returns a const_iterator pointing to the beginning of the unbounded_array.
const_iterator end () const Container Returns a const_iterator pointing to the end of the unbounded_array.
iterator begin () Container Returns a iterator pointing to the beginning of the unbounded_array.
iterator end () Container Returns a iterator pointing to the end of the unbounded_array.
const_reverse_iterator rbegin () const Reversible Container Returns a const_reverse_iterator pointing to the beginning of the reversed unbounded_array.
const_reverse_iterator rend () const Reversible Container Returns a const_reverse_iterator pointing to the end of the reversed unbounded_array.
reverse_iterator rbegin () Reversible Container Returns a reverse_iterator pointing to the beginning of the reversed unbounded_array.
reverse_iterator rend () Reversible Container Returns a reverse_iterator pointing to the end of the reversed unbounded_array.

Copyright (©) 2000-2002 Joerg Walter, Mathias Koch
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 ).