matlab::data::TypedArray<T>

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

Описание

Шаблонный 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 объект.

Броски

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>&

Обновленный пример.

Броски

InvalidArrayTypeException

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

Перемещение конструктора

TypedArray(TypedArray<T>&& rhs)

TypedArray(Array&& rhs)

Описание

Содержимое перемещений входа к новому экземпляру.

Параметры

TypedArray<T>&& rhs

Значение, которое будет перемещено.

Array&& rhs

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

Броски

InvalidArrayTypeException

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

Перемещение оператора присваивания

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

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

Описание

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

Параметры

TypedArray<T>&& rhs

Значение, чтобы переместиться.

Возвращается

TypedArray<T>&

Обновленный пример.

Броски

InvalidArrayTypeException

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

Деструктор

virtual ~TypedArray()

Итераторы

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

iterator begin()

const_iterator begin() const

const_iterator cbegin() const

Возвращается

iterator

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

const_iterator

Итератор в виде TypedIterator<typename std::add_const<T>::type>.

Броски

'none'

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

iterator end()

const_iterator end() const

const_iterator cend() const

Возвращается

iterator

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

const_iterator

Итератор в виде TypedIterator<typename std::add_const<T>::type>.

Броски

'none'

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

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>

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

Броски

'none'

Примеры

Предположим, что у вас есть массив ячеек c. Присвойте значение Reference<Array> возразите и вызовите функцию членства getType.

Reference<Array> r = c[0][0];
auto t = c[0][0].getType;

Функции членства

release

buffer_ptr_t<T> release()

Описание

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

Возвращается

buffer_ptr_t<T>

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

Броски

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