Main Content

matlab::data::Array

所有数组类型的 C++ 基类

描述

使用 Array 对象来表示一维和多维数组。Array 类提供了相应的方法,用于获取所有数组的泛型信息,例如维度和类型等。该类还包含创建深度(克隆)副本和共享数据副本的方法,并支持写入时复制语义。

要构造 Array 对象,请使用 ArrayFactory 方法。

类详细信息

命名空间:

matlab::data

包括:

MDArray.hpp

构造函数

默认构造函数

Array()

抛出

复制构造函数

Array(const Array& rhs)

描述

创建 Array 对象的共享数据副本。

参数

const Array& rhs

要复制的值。

抛出

复制赋值运算符

Array& operator=(const Array& rhs)

描述

将共享数据副本赋给 Array 对象。

参数

const Array& rhs

要复制的值。

返回

Array&

更新的实例。

抛出

移动构造函数

Array(Array&& rhs)

描述

Array 对象的内容移至新实例。

参数

Array&& rhs

要移动的值。

抛出

移动赋值运算符

Array& operator=(Array&& rhs)

描述

将输入赋给此 Array 对象。

参数

Array&& rhs

要移动的值。

返回

Array&

更新的实例。

抛出

析构函数

virtual ~Array()

索引运算符

operator[]

ArrayElementRef<false> operator[](size_t idx)

ArrayElementRef<true> operator[](size_t idx) const

描述

const 和非 const 数组启用 [] 索引。索引从 0 开始。

参数

size_t idx

第一个数组索引

返回

ArrayElementRef<false>

包含指定索引的临时对象。返回值允许修改或检索数组的元素。

ArrayElementRef<true>

包含指定索引的临时对象。返回值允许检索(但不能修改)数组的元素。

抛出

成员函数

getType

ArrayType getType() const
返回

ArrayType

数组类型。

抛出

getMemoryLayout

MemoryLayout getMemoryLayout() const
返回

MemoryLayout

数组的内存布局,指定为 MemoryLayout::COLUMN_MAJORMemoryLayout::ROW_MAJOR

抛出

matlab::data::FeatureNotSupportedException

R2019a 之前创建的数组不支持不同的内存布局。内存布局始终为列优先。

getDimensions

ArrayDimensions getDimensions() const
返回

ArrayDimensions

数组中每个维度的向量。

抛出

getNumberOfElements

size_t getNumberOfElements() const
返回

size_t

数组中元素的数量。

抛出

isEmpty

bool isEmpty() const
返回

bool

如果数组为空,则为 True。如果数组不为空,则为 False。

抛出

自由函数

getReadOnlyElements

template <typename T>
Range<TypedIterator, T const> getReadOnlyElements(const Array& arr)
描述

获取包含 Array 元素的范围。范围中包含的迭代器是 const

参数

const Array& arr

Array

返回

Range<TypedIterator, T const>

包含输入 Arraybeginend 迭代器的范围。

抛出

matlab::data::InvalidArrayTypeException

Array 不包含类型 T

getWritableElements

template <typename T>
Range<TypedIterator, T> getWritableElements(Array& arr)
描述

获取包含 Array 元素的范围。范围中包含的迭代器为非 const 类型。

参数

Array& arr

Array

返回

Range<TypedIterator, T>

包含输入 Arraybeginend 迭代器的范围。

抛出

matlab::data::InvalidArrayTypeException

Array 不包含类型 T

版本历史记录

在 R2017b 中推出

全部展开

另请参阅