有限數組存儲(Bounded Array Storage)

有限數組(Bounded Array)

說明

模板類bounded_array<T, N, ALLOC> 實現一個有限數組( bounded storage array )。有限數組( bounded array )類似於一個 C++ 數組類型,因為數組的最大大小被限制為 N 並在棧上分配而不是在堆上分配。類似的bounded_array 不需要二級存儲( secondary storage )且 ALLOC 僅被用於指定size_typedifference_type

當改變bounded_array 數組時永遠都不會重新分配內存。因此改變數組bounded_array的大小永遠都是高效的,但是改變的大小不能夠超過 N 。

例子

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

定義

定義在頭文件 storage.hpp 中。

模板參數

參數 說明 缺省值
T 存儲在數組中的對象的類型。
N 分配的數組的大小。
ALLOC 一個STL分配器(Allocator)。 std::allocator

模型(Model of)

存儲(Storage)

類型要求(Type requirements)

沒有,除了由存儲(storage)所施加的類型要求。

公有基類(Public base classes)

沒有。

成員

成員 定義位置 說明
value_typeContainer
pointerContainer定義為 value_type*
const_pointerContainer定義為 const value_type*
referenceContainer定義為 value_type&
const_referenceContainer定義為 const value_type&
size_typeContainer定義為 Alloc::size_type
difference_typeContainer定義為 Alloc::difference_type
iteratorContainer定義為 pointer
const_iteratorContainer定義為 const_pointer
revere_iteratorContainer定義為 std::reverse_iterator<iterator>
const_revere_iteratorContainer定義為 std::reverse_iterator<const_iterator>
bounded_array () Storage 生成一個包含0個元素的 unbounded_array
bounded_array (size_type size) 存儲(Storage) 生成一個包含size個元素的未初始化的 bounded_array 。 所有的元素都是缺省構造。
bounded_array (size_type size, const T& init) 存儲(Storage) 生成一個包含size個元素的且被初始化的 bounded_array 。所有的元素都由 init 值來構造。
bounded_array (const bounded_array &c) Container 拷貝構造函數。
~bounded_array () Container 析構 bounded_array 本身。
void resize (size_type size) Storage 重新分配一個包含size個元素的 bounded_array
void resize (size_type size, const T& t) Storage 重新分配一個包含size個元素的 bounded_array
size_type size () const Container 返回 bounded_array 的大小。
const_reference operator [] (size_type i) const Container 返回第i個元素的 const 引用。
reference operator [] (size_type i) Container 返回第i個元素的引用。
bounded_array &operator = (const bounded_array &a) Container 賦值運算符。
bounded_array &assign_temporary (bounded_array &a) 賦值給一個臨時變量。可能會改變數組 a
void swap (bounded_array &a) Container 交換數組的內容。
const_iterator begin () const Container 返回一個指向bounded_array開始處的 const_iterator
const_iterator end () const Container 返回一個指向bounded_array終止處的 const_iterator
iterator begin () Container 返回一個指向bounded_array開始處的 const_iterator
iterator end () Container 返回一個指向bounded_array終止處的 const_iterator
const_reverse_iterator rbegin () const Reversible Container 返回指向反轉的(reversed)bounded_array開始處的 const_reverse_iterator
const_reverse_iterator rend () const Reversible Container 返回指向反轉的(reversed)bounded_array終止處的 const_reverse_iterator
reverse_iterator rbegin () Reversible Container 返回指向反轉的(reversed)bounded_array開始處的 reverse_iterator
reverse_iterator rend () Reversible Container 返回指向反轉的(reversed)bounded_array終止處的 reverse_iterator

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