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 объект.

Броски

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

Итераторы

Начало итераторов

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