向量(Vector)

向量

說明

模板類vector<T, A> 是密集向量(dense vectors)的基容器適配器(base container adaptor)。對於一個n-維向量且0 <= i < n ,每一個元素vi 被映射到容器中的第i-th個元素。

例子

#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/io.hpp>

int main () {
    using namespace boost::numeric::ublas;
    vector<double> v (3);
    for (unsigned i = 0; i < v.size (); ++ i)
        v (i) = i;
    std::cout << v << std::endl;
}

定義

定義在頭文件 vector.hpp 中。

模板參數

參數 說明 缺省值
T 存儲在向量中的對象的類型。
A 存儲(Storage)數組的類型。[1] unbounded_array<T>

模型(Model of)

向量(Vector) , 隨機訪問容器(RandomAccessContainer)

類型要求(Type requirements)

沒有,除了由向量(Vector)隨機訪問容器(RandomAccessContainer)所施加的類型要求。

公有基類(Public base classes)

vector_container<vector<T, A> >

成員

成員 Where defined 說明
value_type VectorExpression
reference VectorExpression
const_reference VectorExpression
size_type VectorExpression
difference_type VectorExpression
const_iterator VectorExpression
iterator VectorExpression
const_reverse_iterator VectorExpression
reverse_iterator VectorExpression
array_type Vector
vector () VectorExpression Allocates an uninitialized vector that holds zero elements.
vector (size_type size) Vector 分配一個包含size個元素的未初始化的vector
vector (const vector &v) 拷貝構造函數。
template<class AE>
vector (const vector_expression<AE> &ae)
擴展拷貝構造函數。
void resize (size_type size, bool preserve = true) Vector 重新分配一個包含size個元素的vector。 如果指定,vector中已經存在的元素將被保留。
size_type size () const VectorExpression 返回vector的大小。
size_type max_size () const RandomAccessContainer 返回vector大小的上邊界。
bool empty () const RandomAccessContainer 等價於 size () == 0
const array_type& data () const Vector
array_type& data () Vector
const_reference operator () (size_type i) const VectorExpression 返回第i個元素的常引用。
reference operator () (size_type i) VectorExpression 返回第i-th個元素的引用。
const_reference operator [] (size_type i) const Vector 返回第i個元素的常量(const)引用 。
reference operator [] (size_type i) Vector 返回第i-th個元素的引用。
vector &operator = (const vector &v) VectorExpression 賦值運算符。
vector &assign_temporary (vector &v) VectorExpression 賦值給一個臨時變量。可能會改變向量v
template<class AE>
vector &operator = (const vector_expression<AE> &ae)
VectorExpression 擴展賦值運算符。
template<class AE>
vector &assign (const vector_expression<AE> &ae)
VectorExpression 將一個向量表達式表達一個向量。賦值的左邊和右邊應當是相互獨立的。
template<class AE>
vector &operator += (const vector_expression<AE> &ae)
VectorExpression 一個運算賦值運算符(computed assignment operator)。將一個向量表達式加到一個向量中。
template<class AE>
vector &plus_assign (const vector_expression<AE> &ae)
VectorExpression 將一個向量表達式加到一個向量中。賦值的左邊和右邊應當是相互獨立的。
template<class AE>
vector &operator -= (const vector_expression<AE> &ae)
VectorExpression 一個運算賦值運算符(computed assignment operator)。從一個向量中減去一個向量表達式。
template<class AE>
vector &minus_assign (const vector_expression<AE> &ae)
VectorExpression 從一個向量中減去一個向量式。賦值的左邊和右邊應當是相互獨立的。
template<class AT>
vector &operator *= (const AT &at)
VectorExpression 一個運算賦值運算符(computed assignment operator)。將向量乘以一個標量。
template<class AT>
vector &operator /= (const AT &at)
VectorExpression 一個運算賦值運算符(computed assignment operator)。將一個向量除以一個標量。
void swap (vector &v) VectorExpression 交換向量的內容。
void insert_element (size_type i, const_reference t) Vector t插入到第i-th個元素 。
void erase_element (size_type i) Vector 將第i-th個元素刪除。
void clear () Vector 清除容器。
const_iterator begin () const VectorExpression 返回指向vector開始處的 const_iterator
const_iterator end () const VectorExpression 返回指向vector終止處的 const_iterator
iterator begin () VectorExpression 返回指向vector開始處的 iterator
iterator end () VectorExpression 返回指向vector終止處的iterator
const_reverse_iterator rbegin () const VectorExpression 返回指向反轉的(reversed)vector開始處的 const_reverse_iterator
const_reverse_iterator rend () const VectorExpression 返回指向反轉的(reversed)vector終止處的 const_reverse_iterator
reverse_iterator rbegin () VectorExpression 返回指向反轉的(reversed)vector開始處的 reverse_iterator
reverse_iterator rend () VectorExpression 返回指向反轉的(reversed)vector終止處的 reverse_iterator

注意

[1] 對於存儲數組(Storage array)的常見參數是unbounded_array<T> , bounded_array<T>std::vector<T>

單位向量(Unit Vector)

說明

模板類unit_vector<T, ALLOC> represents canonical unit vectors. 對於第k-th個 n-維標準單位向量(canonical unit vector)且0 <= i < n ,如果 i <> k, and uki = 1,那麼滿足uki = 0

例子

#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/io.hpp>

int main () {
    using namespace boost::numeric::ublas;
    for (int i = 0; i < 3; ++ i) {
        unit_vector<double> v (3, i);
        std::cout << v << std::endl;
    }
}

定義

定義在頭文件 vector.hpp 中。

模板參數

參數 說明 缺省值
T The type of object stored in the vector. int
ALLOC An STL Allocator for size_type and difference_type. std::allocator

模型(Model of)

向量(Vector)

類型要求(Type requirements)

沒有,除了由向量(Vector)所施加的類型要求。

公有基類(Public base classes)

vector_container<unit_vector<T> >

成員

成員 說明
unit_vector () 構造一個包含0個元素的 unit_vector
unit_vector (size_type size, size_type index) 構造包含size個元素的第index-th個unit_vector
unit_vector (const unit_vector &v) 拷貝構造函數。
void resize (size_type size, bool preserve = true) 重設unit_vector大小來包含 size 個元素。因此 unit_vector中已經存在的元素將會一直保存。
size_type size () const 返回unit_vector的大小。
size_type index () const 返回unit_vector的索引(index)。
const_reference operator () (size_type i) const 返回第 i-th 個元素的常引用。
const_reference operator [] (size_type i) const 返回第 i-th 個元素的常引用。
unit_vector &operator = (const unit_vector &v) 賦值運算符。
unit_vector &assign_temporary (unit_vector &v) 賦值給一個臨時變量。可能會改變單位向量v
void swap (unit_vector &v) 交換單位向量的內容。
const_iterator begin () const 返回指向unit_vector開始處的const_iterator
const_iterator end () const 返回指向unit_vector終止處的const_iterator
const_reverse_iterator rbegin () const 返回指向反轉的(reversed)unit_vector開始處的const_reverse_iterator
const_reverse_iterator rend () const 返回指向反轉的(reversed)unit_vector終止處的const_reverse_iterator

Zero Vector

說明

模板類zero_vector<T, ALLOC> 表示零向量(zero vectors)。對於一個n-維零向量( zero vector )且0 <= i < n ,滿足zi = 0

例子

#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/io.hpp>

int main () {
    using namespace boost::numeric::ublas;
    zero_vector<double> v (3);
    std::cout << v << std::endl;
}

定義

定義在頭文件 vector.hpp 中。

模板參數

參數 說明 缺省值
T The type of object stored in the vector. int
ALLOC An STL Allocator for size_type and difference_type. std::allocator

模型(Model of)

向量(Vector)

類型要求(Type requirements)

沒有,除了由向量(Vector)所施加的類型要求。

公有基類(Public base classes)

vector_container<zero_vector<T> >

成員

成員 說明
zero_vector () 構造一個包含0個元素的zero_vector
zero_vector (size_type size) 構造一個包含size個元素的zero_vector
zero_vector (const zero_vector &v) 拷貝構造函數。
void resize (size_type size, bool preserve = true) 重設zero_vector的大小來包含size個元素。 因此, zero_vector中已經存在的元素將會一直保留。
size_type size () const 返回 zero_vector的大小。
const_reference operator () (size_type i) const 返回第 i-th 個元素的常引用。
const_reference operator [] (size_type i) const 返回第 i-th 個元素的常引用。
zero_vector &operator = (const zero_vector &v) 賦值運算符。
zero_vector &assign_temporary (zero_vector &v) 賦值給一個臨時變量。可能會改變零向量v
void swap (zero_vector &v) 交換零向量的內容。
const_iterator begin () const 返回一個指向zero_vector開始處的const_iterator
const_iterator end () const 返回一個指向zero_vector終止處的const_iterator
const_reverse_iterator rbegin () const Returns a const_reverse_iterator pointing to the beginning of the reversed zero_vector.
const_reverse_iterator rend () const 返回一個指向返回的(reversed) zero_vector開始處的const_reverse_iterator

標量 向量(Scalar Vector)

說明

模板類scalar_vector<T, ALLOC> 表示標量向量(scalar vectors)。對於一個n-維標量向量( scalar vector ) 且0 <= i < n 滿足zi = s

例子

#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/io.hpp>

int main () {
    using namespace boost::numeric::ublas;
    scalar_vector<double> v (3);
    std::cout << v << std::endl;
}

定義

定義在頭文件 vector.hpp 中。

模板參數

參數 說明 缺省值
T 存儲在向量中的對象的類型。 int
ALLOC 針對於size_type 和 difference_type的STL分配器(Allocator)。 std::allocator

模型(Model of)

向量(Vector)

類型要求(Type requirements)

沒有,除了由向量(Vector)所施加的類型要求。

公有基類(Public base classes)

vector_container<scalar_vector<T> >

成員

成員 說明
scalar_vector () 構造一個包含0個元素的 scalar_vector
scalar_vector (size_type size, const value_type &value) 構造一個包含size個元素的scalar_vector,每個元素都是一個指定值。
scalar_vector (const scalar_vector &v) 拷貝構造函數。
void resize (size_type size, bool preserve = true) 重高 scalar_vector 的大小來包含 size 個元素。因此, scalar_vector 中已經存在的元素將會被保留。
size_type size () const 返回 scalar_vector的大小。
const_reference operator () (size_type i) const 返回第 i-th 個元素的常引用。
const_reference operator [] (size_type i) const 返回第 i-th 個元素的常引用。
scalar_vector &operator = (const scalar_vector &v) 賦值運算符。
scalar_vector &assign_temporary (scalar_vector &v) 賦值給一個臨時變量。可能會改變標量向量 v
void swap (scalar_vector &v) 交換標量向量的內容。
const_iterator begin () const 返回指向scalar_vector開始處的const_iterator
const_iterator end () const 返回指向scalar_vector終止處的const_iterator
const_reverse_iterator rbegin () const 返回指向反轉的(reversed)scalar_vector開始處的const_reverse_iterator
const_reverse_iterator rend () const 返回指向反轉的(reversed)scalar_vector終止處的const_reverse_iterator

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