exponenta event banner

matlab:: данные:: TypedArray

< T >

Шаблонный класс C++ для доступа к данным массива

Описание

templated TypedArray класс предоставляет API-интерфейсы безопасности типа для обработки всех типов массивов MATLAB (за исключением разреженных массивов). Создание TypedArray, звонок createArray или createScalar в ArrayFactory с одним из шаблонов, перечисленных в разделе Экземпляры шаблона.

Этот класс определяет следующие типы итераторов:

using iterator = TypedIterator<T>;
using const_iterator = TypedIterator<T const>;

Сведения о классе

Пространство имен:

matlab::data

Базовый класс:

matlab::data::Array

Включить:

TypedArray.hpp

Параметры шаблона

T

Тип элемента, на который ссылается.

Экземпляры шаблона

double

float

int8_t

uint8_t

int16_t

uint16_t

int32_t

uint32_t

int64_t

uint64_t

char16_t

bool

std::complex<double>

std::complex<float>

std::complex<int8_t>

std::complex<uint8_t>

std::complex<int16_t>

std::complex<uint16_t>

std::complex<int32_t>

std::complex<uint32_t>

std::complex<int64_t>

std::complex<uint64_t>

matlab::data::Array
matlab::data::Struct
matlab::data::Enumeration

matlab::data::MATLABString

Конструкторы

Копировать конструктор

TypedArray(const TypedArray<T>& rhs)

TypedArray(const Array& rhs)

Описание

Создает общую копию входных данных.

Параметры

const TypedArray<T>& rhs

Копируемое значение.

const Array& rhs

Значение указано как matlab::data::Array объект.

Броски

matlab::data::InvalidArrayTypeException

Тип ввода Array не соответствует типу для TypedArray<T>.

Оператор копирования назначения

TypedArray<T>& operator=(const TypedArray<T>& rhs)

TypedArray<T>& operator=(const Array& rhs)

Описание

Назначает совместно используемую копию входных данных для этого TypedArray<T>.

Параметры

const TypedArray<T>& rhs

Копируемое значение.

const Array& rhs

Значение указано как matlab::data::Array объект.

Прибыль

TypedArray<T>&

Обновленный экземпляр.

Броски

matlab::data::InvalidArrayTypeException

Тип ввода Array не соответствует типу для TypedArray<T>.

Переместить конструктор

TypedArray(TypedArray<T>&& rhs)

TypedArray(Array&& rhs)

Описание

Перемещение содержимого входных данных в новый экземпляр.

Параметры

TypedArray<T>&& rhs

Значение для перемещения.

Array&& rhs

Значение указано как matlab::data::Array объект.

Броски

matlab::data::InvalidArrayTypeException

Тип ввода не совпадает.

Оператор назначения перемещения

TypedArray<T>& operator=(TypedArray<T>&& rhs)

TypedArray<T>& operator=(Array&& rhs)

Описание

Перемещает входные данные в это TypedArray<T> объект.

Параметры

TypedArray<T>&& rhs

Значение для перемещения.

Прибыль

TypedArray<T>&

Обновленный экземпляр.

Броски

matlab::data::InvalidArrayTypeException

Тип ввода Array не соответствует типу для TypedArray<T>.

Деструктор

virtual ~TypedArray()

Iterators

Начать итераторы

iterator begin()

const_iterator begin() const

const_iterator cbegin() const

Прибыль

iterator

Итератор в начало массива, указанный как TypedIterator<T>.

const_iterator

Итератор, указанный как TypedIterator<typename std::add_const<T>::type>.

Броски

Ничего

Конечные итераторы

iterator end()

const_iterator end() const

const_iterator cend() const

Прибыль

iterator

Итератор до конца массива, указанный как TypedIterator<T>.

const_iterator

Итератор, указанный как TypedIterator<typename std::add_const<T>::type>.

Броски

Ничего

Операторы индексирования

operator[]

ArrayElementTypedRef<T, std::is_const<T>::value> operator[](size_t idx)

ArrayElementTypedRef<T, true> operator[](size_t idx) const

Описание

Позволяет [] индексирование на TypedArray. Индексирование основано на 0.

Параметры

size_t idx

Индекс первого массива.

Прибыль

ArrayElementTypedRef<T, std::is_const<T>::value>

Указан временный объект, содержащий индекс. Если тип T является const, то возвращаемое значение позволяет извлекать элемент массива, но не изменять его. В противном случае элемент может быть изменен или извлечен.

ArrayElementTypedRef<T, true>

Указан временный объект, содержащий индекс. Возвращаемое значение позволяет извлекать элемент массива, но не изменять его.

Броски

Ничего

Функции-члены

release

buffer_ptr_t<T> release()
Описание

Освободите базовый буфер из массива. Если массив является общим, создается копия буфера; в противном случае копия не создается. После освобождения буфера массив не содержит элементов.

Прибыль

buffer_ptr_t<T>

unique_ptr содержащий указатель данных.

Броски

matlab::data::InvalidArrayTypeException

TypedArray не поддерживает освобождение буфера.

Примеры

развернуть все

Создание массива, эквивалентного массиву MATLAB [1 2; 3 4], затем замените каждый элемент массива одним значением.

#include "MatlabDataArray.hpp"

int main() {
	matlab::data::ArrayFactory factory;
	// Create an array equivalent to the MATLAB array [1 2; 3 4].
	matlab::data::TypedArray<double> D = factory.createArray<double>({ 2,2 }, { 1,3,2,4 });
	// Change the values.
	for (auto& elem : D) {
		elem = 5.5;
	}
	return 0;
}
Представлен в R2017b