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.
#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
).