範圍和切分存儲(Range and Slice Storage)

Range<SizeType,DistanceType>

說明

range 指定索引的一個範圍。這個範圍是從一個起始值到一個終止值的索引的序列。這些索引以大小為1的步進來增加並且不包含最後一個終止值。因此 range 可以用來指定向量和矩陣的元素的一個範圍。

例子

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

int main () {
    using namespace boost::numeric::ublas;
    range r (0, 3);
    for (unsigned i = 0; i < r.size (); ++ i) {
        std::cout << r (i) << std::endl;
    }
}

定義

定義在頭文件 storage.hpp 中。

模型(Model of)

可反轉的容器( Reversible Container )。

類型要求(Type requirements)

沒有,除了由可反轉的容器( Reversible Container )所施加的類型要求。

公有基類(Public base classes)

沒有。

成員

成員 說明
range (size_type start, size_type stop) 構造一個從startstop (不包含)的索引值的範圍。 .
size_type start () const 返回 range 的開始。
size_type size () const 返回 range 的大小。
const_reference operator [] (size_type i) const 返回第i個元素start + i的常引用。
range compose (const range &r) const 返回start + r.start ()start + r.start () + r.size ()的組合範圍。
bool operator == (const range &r) const 測試兩個範圍的是否相等。
bool operator != (const range &r) const 測試兩個範圍是否不相等。
const_iterator begin () const 返回指向range開始處的const_iterator
const_iterator end () const 返回指向range終止處的const_iterator
const_reverse_iterator rbegin () const 返回指向反轉的(reversed)range開始處的const_reverse_iterator
const_reverse_iterator rend () const 返回指向反轉的(reversed)range終止處的const_reverse_iterator

先決條件(Preconditions)

Slice<SizeType,DistanceType>

說明

slice 指定索引的一個 '切分(slice)'。 切分(Slices)與範圍(ranges)更加一般化,允許在索引序列的元素之間以一個指定的步進值來增加和減少。因此 slice 可以用來指定向量和矩陣的元素的切分(slices)。

例子

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

int main () {
    using namespace boost::numeric::ublas;
    slice s (0, 1, 3);
    for (unsigned i = 0; i < s.size (); ++ i) {
        std::cout << s (i) << std::endl;
    }
}

定義

定義在頭文件 storage.hpp 中。

模型(Model of)

可反轉的容器( Reversible Container )

類型要求(Type requirements)

沒有,除了由可反轉的容器( Reversible Container )所施加的類型要求。

公有基類(Public base classes)

沒有。

成員

成員 說明
slice (size_type start, size_type stride, size_type size) 構造一個包含size個元素的切分(slice) start,start+stride,start+2*stride...
size_type start () const 返回 slice的開始位置。
size_type stride () const 返回slice的步進值(stride)。
size_type size () const 返回 slice的大小。
const_reference operator [] (size_type i) const 返回第i個元素start + i * stride的常引用。
slice compose (const range &r) const 返回從start + stride * r.start ()start + stride * (r.start () + r.size ()) 且步進值(stride)為 stride的組合切分(composite slice)。
slice compose (const slice &s) const 返回從start + stride * s.start ()start + stride * s.stride () * (s.start () + s.size ())且步進值(stride)為stride * s.stride () 的組合切分(composite slice)。
bool operator == (const slice &s) const 測試兩個切分(slices)是否相等。
bool operator != (const slice &s) const 測試兩個切分(slices)是否不相等。
const_iterator begin () const 返回指向slice開始處的const_iterator
const_iterator end () const 返回指向slice終止處的const_iterator
const_reverse_iterator rbegin () const 返回指向反轉的(reversed)slice開始處的const_reverse_iterator
const_reverse_iterator rend () const 返回指向反轉的(reversed)slice終止處的const_reverse_iterator

先決條件(Preconditions)


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