29 Numerics library [numerics]

29.7 Numeric arrays [numarray]

29.7.2 Class template valarray [template.valarray]

29.7.2.2 valarray constructors [valarray.cons]

valarray();

Effects: Создает объект valarray нулевой длины.277

explicit valarray(size_t n);

Effects: Создает a valarray , имеющий длину n. Каждый элемент массива равен value-initialized.

valarray(const T& v, size_t n);

Effects: Создает a valarray , имеющий длину n. Каждый элемент массива инициализируется с помощью v.

valarray(const T* p, size_t n);

Requires: p указывает на array ([dcl.array]) как минимум из n элементов.

Effects: Создает a valarray , имеющий длину n. Значения элементов массива инициализируются первыми n значениями, на которые указывает первый аргумент.278

valarray(const valarray& v);

Effects: Создает a valarray , имеющий ту же длину, что и v. Элементы инициализируются значениями соответствующих элементов v.279

valarray(valarray&& v) noexcept;

Effects: Создает a valarray , имеющий ту же длину, что и v. Элементы инициализируются значениями соответствующих элементов v.

Complexity: Постоянный.

valarray(initializer_list<T> il);

Effects: Эквивалентно valarray(il.begin(), il.size()).

valarray(const slice_array<T>&); valarray(const gslice_array<T>&); valarray(const mask_array<T>&); valarray(const indirect_array<T>&);

Эти конструкторы преобразования преобразуют один из четырех эталонных шаблонов в файл valarray.

~valarray();

Effects: Деструктор применяется к каждому элементу *this; реализация может вернуть всю выделенную память.

Этот конструктор по умолчанию важен, посколькуvalarray могут быть полезны массивы . После инициализации длину пустого массива можно увеличить с помощью resize функции-члена.

Этот конструктор является предпочтительным методом преобразования массива C в valarray объект.

Этот конструктор копирования создает отдельный массив, а не псевдоним. Реализации, в которых массивы совместно используют хранилище, разрешены, но они должны реализовывать механизм копирования по ссылке, чтобы гарантировать, что массивы концептуально различны.