array Класс (стандартная библиотека C++)

Описывает объект, управляющий последовательностью из элементов N типа Ty. Последовательность хранится как массив Ty в объекте array<Ty, N>.

Синтаксис

template <class Ty, std::size_t N>
class array;

Параметры

Ty
Тип элемента.

N
Число элементов.

Элементы

Определение типа Описание
const_iterator Тип постоянного итератора для управляемой последовательности.
const_pointer Тип постоянного указателя на элемент.
const_reference Тип постоянной ссылки на элемент.
const_reverse_iterator Тип постоянного обратного итератора для управляемой последовательности.
difference_type Тип расстояния со знаком между двумя элементами.
iterator Тип итератора для управляемой последовательности.
pointer Тип указателя на элемент.
reference Тип ссылки на элемент.
reverse_iterator Тип обратного итератора для управляемой последовательности.
size_type Тип беззнакового расстояния между двумя элементами.
value_type Тип элемента.
Функция-член Описание
array Создает объект массива.
assign (Устарело. Используйте fill.) Заменяет все элементы.
at Обращается к элементу в указанной позиции.
back Обращается к последнему элементу.
begin Задает начало управляемой последовательности.
cbegin Возвращает постоянный итератор произвольного доступа, указывающий на первый элемент в массиве.
cend Возвращает постоянный итератор произвольного доступа, указывающий на предпоследнюю позицию массива.
crbegin Возвращает константный итератор, который указывает на первый элемент в обращенном массиве.
crend Возвращает постоянный итератор, который указывает на последний элемент в обратном массиве.
data Получает адрес первого элемента.
empty Проверяет наличие элементов.
end Задает конец управляемой последовательности.
fill Заменяет все элементы указанным значением.
front Обращается к первому элементу.
max_size Подсчитывает количество элементов.
rbegin Задает начало обратной управляемой последовательности.
rend Задает конец обратной управляемой последовательности.
size Подсчитывает количество элементов.
swap Меняет местами содержимое двух контейнеров.
Оператор Описание
array::operator= Заменяет управляемую последовательность.
array::operator[] Обращается к элементу в указанной позиции.

Комментарии

У этого типа есть конструктор по умолчанию array() и оператор присваивания по умолчанию operator=. Тип удовлетворяет требованиям для aggregate. Поэтому объекты типа array<Ty, N> можно инициализировать с помощью агрегатного инициализатора. Например,

array<int, 4> ai = { 1, 2, 3 };

создает объект ai, содержащий четыре целочисленных значения, инициализирует первые три элемента как 1, 2 и 3 соответственно и инициализирует четвертый элемент как 0.

Требования

Заголовка:<array>

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

array::array

Создает объект массива.

array();

array(const array& right);

Параметры

right
Объект или диапазон для вставки.

Комментарии

Конструктор по умолчанию array() оставляет управляемую последовательность неинициализированной (или инициализированной по умолчанию). Он используется для указания неинициализированной управляемой последовательности.

Конструктор array(const array& right) копирования инициализирует управляемую последовательность последовательностью [right.begin(), right.end()). Он используется для указания начальной управляемой последовательности, которая является копией последовательности, управляемой объектом rightмассива .

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    Myarray c1(c0);

    // display contents " 0 1 2 3"
    for (const auto& it : c1)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    return (0);
}
0 1 2 3
0 1 2 3

array::assign

Устаревшее в C++11, заменено fillна . Заменяет все элементы.

array::at

Обращается к элементу в указанной позиции.

reference at(size_type off);

constexpr const_reference at(size_type off) const;

Параметры

off
Позиция элемента, к которому осуществляется доступ.

Комментарии

Функции-члены возвращают ссылку на элемент управляемой последовательности в позиции off. Если эта позиция недопустима, функция выдает объект класса out_of_range.

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display odd elements " 1 3"
    std::cout << " " << c0.at(1);
    std::cout << " " << c0.at(3);
    std::cout << std::endl;

    return (0);
}

array::back

Обращается к последнему элементу.

reference back();

constexpr const_reference back() const;

Комментарии

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

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display last element " 3"
    std::cout << " " << c0.back();
    std::cout << std::endl;

    return (0);
}
0 1 2 3
3

array::begin

Задает начало управляемой последовательности.

iterator begin() noexcept;
const_iterator begin() const noexcept;

Комментарии

Функции-члены возвращают итератор произвольного доступа, указывающий на первый элемент последовательности (или на место сразу за концом пустой последовательности)).

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display first element " 0"
    Myarray::iterator it2 = c0.begin();
    std::cout << " " << *it2;
    std::cout << std::endl;

    return (0);
}
0 1 2 3
0

array::cbegin

Возвращает итератор const, направленный на первый элемент в диапазоне.

const_iterator cbegin() const noexcept;

Возвращаемое значение

Итератор случайного доступа const, который указывает на первый элемент диапазона или расположение прямо за концом пустого диапазона (cbegin() == cend() для пустого диапазона).

Комментарии

При использовании возвращаемого cbeginзначения элементы в диапазоне не могут быть изменены.

Эту функцию-член можно использовать вместо функции-члена begin(), чтобы гарантировать, что возвращаемое значение будет const_iterator. Как правило, он используется с ключевое слово вычета auto типов, как показано в следующем примере. В этом примере предположим, что Container является изменяемым контейнером (не const) любого типа, который поддерживает begin() и cbegin().

auto i1 = Container.begin();
// i1 is Container<T>::iterator
auto i2 = Container.cbegin();

// i2 is Container<T>::const_iterator

array::cend

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

const_iterator cend() const noexcept;

Возвращаемое значение

Итератор произвольного доступа, который указывает на место сразу после конца диапазона.

Комментарии

cend используется для проверки того, прошел ли итератор конец диапазона.

Эту функцию-член можно использовать вместо функции-члена end(), чтобы гарантировать, что возвращаемое значение будет const_iterator. Как правило, он используется с ключевое слово вычета auto типов, как показано в следующем примере. В этом примере предположим, что Container является изменяемым контейнером (не const) любого типа, который поддерживает end() и cend().

auto i1 = Container.end();
// i1 is Container<T>::iterator
auto i2 = Container.cend();

// i2 is Container<T>::const_iterator

Значение, возвращаемое параметром cend , не должно быть разыменовывано.

array::const_iterator

Тип постоянного итератора для управляемой последовательности.

typedef implementation-defined const_iterator;

Комментарии

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

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> MyArray;

int main()
{
    MyArray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    std::cout << "it1:";
    for (MyArray::const_iterator it1 = c0.begin();
        it1 != c0.end();
        ++it1) {
        std::cout << " " << *it1;
    }
    std::cout << std::endl;

    // display first element " 0"
    MyArray::const_iterator it2 = c0.begin();
    std::cout << "it2:";
    std::cout << " " << *it2;
    std::cout << std::endl;

    return (0);
}
it1: 0 1 2 3
it2: 0

array::const_pointer

Тип постоянного указателя на элемент.

typedef const Ty *const_pointer;

Комментарии

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

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display first element " 0"
    Myarray::const_pointer ptr = &*c0.begin();
    std::cout << " " << *ptr;
    std::cout << std::endl;

    return (0);
}
0 1 2 3
0

array::const_reference

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

typedef const Ty& const_reference;

Комментарии

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

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display first element " 0"
    Myarray::const_reference ref = *c0.begin();
    std::cout << " " << ref;
    std::cout << std::endl;

    return (0);
}
0 1 2 3
0

array::const_reverse_iterator

Тип постоянного обратного итератора для управляемой последовательности.

typedef std::reverse_iterator<const_iterator> const_reverse_iterator;

Комментарии

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

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display last element " 3"
    Myarray::const_reverse_iterator it2 = c0.rbegin();
    std::cout << " " << *it2;
    std::cout << std::endl;

    return (0);
}
0 1 2 3
3

array::crbegin

Возвращает константный итератор, который указывает на первый элемент в обращенном массиве.

const_reverse_iterator crbegin() const;

Возвращаемое значение

Константный обратный итератор произвольного доступа, указывающий на первый элемент в обращенном массиве или на элемент, который был последним в массиве до его обращения.

Комментарии

При возвращаемом значении crbeginобъект массива нельзя изменить.

Пример

#include <array>
#include <iostream>

int main( )
{
   using namespace std;
   array<int, 2> v1 = {1, 2};
   array<int, 2>::iterator v1_Iter;
   array<int, 2>::const_reverse_iterator v1_rIter;

   v1_Iter = v1.begin( );
   cout << "The first element of array is "
        << *v1_Iter << "." << endl;

   v1_rIter = v1.crbegin( );
   cout << "The first element of the reversed array is "
        << *v1_rIter << "." << endl;
}
The first element of array is 1.
The first element of the reversed array is 2.

array::crend

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

const_reverse_iterator crend() const noexcept;

Возвращаемое значение

Константный обратный итератор произвольного доступа, адресующий расположение после последнего элемента в обращенном массиве (расположение перед первым элементом в необращенном массиве).

Комментарии

crend используется с обратным массивом так же, как array::cend и с массивом.

Если возвращаемое значение crend (соответствующим образом уменьшено), объект массива нельзя изменить.

crend используется, чтобы проверить, достиг ли обратный итератор конца массива.

Значение, возвращаемое параметром crend , не должно разыменовывано.

Пример

#include <array>
#include <iostream>

int main( )
{
   using namespace std;
   array<int, 2> v1 = {1, 2};
   array<int, 2>::const_reverse_iterator v1_rIter;

   for ( v1_rIter = v1.rbegin( ) ; v1_rIter != v1.rend( ) ; v1_rIter++ )
      cout << *v1_rIter << endl;
}
2
1

array::data

Получает адрес первого элемента.

Ty *data();

const Ty *data() const;

Комментарии

Функции-члены возвращают адрес первого элемента в управляемой последовательности.

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display first element " 0"
    Myarray::pointer ptr = c0.data();
    std::cout << " " << *ptr;
    std::cout << std::endl;

    return (0);
}
0 1 2 3
0

array::difference_type

Тип расстояния со знаком между двумя элементами.

typedef std::ptrdiff_t difference_type;

Комментарии

Тип целого числа со знаком описывает объект, который может представлять разницу между адресами любых двух элементов в управляемой последовательности. Это синоним типа std::ptrdiff_t.

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display distance first-last " -4"
    Myarray::difference_type diff = c0.begin() - c0.end();
    std::cout << " " << diff;
    std::cout << std::endl;

    return (0);
}
0 1 2 3
-4

array::empty

Проверяет отсутствие элементов.

constexpr bool empty() const;

Комментарии

Функция-член возвращает значение true, только если N == 0.

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display whether c0 is empty " false"
    std::cout << std::boolalpha << " " << c0.empty();
    std::cout << std::endl;

    std::array<int, 0> c1;

    // display whether c1 is empty " true"
    std::cout << std::boolalpha << " " << c1.empty();
    std::cout << std::endl;

    return (0);
}
0 1 2 3
false
true

array::end

Задает конец управляемой последовательности.

reference end();

const_reference end() const;

Комментарии

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

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display last element " 3"
    Myarray::iterator it2 = c0.end();
    std::cout << " " << *--it2;
    std::cout << std::endl;

    return (0);
}
0 1 2 3
3

array::fill

Удаляет массив и копирует указанные элементы в пустой массив.

void fill(const Type& val);

Параметры

val
Значение элемента, вставляемого в массив.

Комментарии

fill заменяет каждый элемент массива на указанное значение.

Пример

#include <array>
#include <iostream>

int main()
{
    using namespace std;
    array<int, 2> v1 = { 1, 2 };

    cout << "v1 = ";
    for (const auto& it : v1)
    {
        std::cout << " " << it;
    }
    cout << endl;

    v1.fill(3);
    cout << "v1 = ";
    for (const auto& it : v1)
    {
        std::cout << " " << it;
    }
    cout << endl;
}

array::front

Обращается к первому элементу.

reference front();

constexpr const_reference front() const;

Комментарии

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

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display first element " 0"
    std::cout << " " << c0.front();
    std::cout << std::endl;

    return (0);
}
0 1 2 3
0

array::iterator

Тип итератора для управляемой последовательности.

typedef implementation-defined iterator;

Комментарии

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

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> MyArray;

int main()
{
    MyArray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    std::cout << "it1:";
    for (MyArray::iterator it1 = c0.begin();
        it1 != c0.end();
        ++it1) {
        std::cout << " " << *it1;
    }
    std::cout << std::endl;

    // display first element " 0"
    MyArray::iterator it2 = c0.begin();
    std::cout << "it2:";
    std::cout << " " << *it2;
    std::cout << std::endl;

    return (0);
}
it1: 0 1 2 3

it2: 0

array::max_size

Подсчитывает количество элементов.

constexpr size_type max_size() const;

Комментарии

Функция-член возвращает значение N.

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display (maximum) size " 4"
    std::cout << " " << c0.max_size();
    std::cout << std::endl;

    return (0);
}
0 1 2 3
4

array::operator[]

Обращается к элементу в указанной позиции.

reference operator[](size_type off);

constexpr const_reference operator[](size_type off) const;

Параметры

off
Позиция элемента, к которому осуществляется доступ.

Комментарии

Функции-члены возвращают ссылку на элемент управляемой последовательности в позиции off. Если эта позиция недопустима, поведение станет неопределенным.

Также доступна функция, не являющейся членомget, для получения ссылки на элемент .array

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display odd elements " 1 3"
    std::cout << " " << c0[1];
    std::cout << " " << c0[3];
    std::cout << std::endl;

    return (0);
}
0 1 2 3
1 3

array::operator=

Заменяет управляемую последовательность.

array<Value> operator=(array<Value> right);

Параметры

right
Контейнер для копирования.

Комментарии

Оператор-член присваивает каждому элементу right соответствующий элемент управляемой последовательности, а затем возвращает *this. Он позволяет заменить управляемую последовательность копией управляемой последовательности в right.

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    Myarray c1;
    c1 = c0;

    // display copied contents " 0 1 2 3"
        // display contents " 0 1 2 3"
    for (auto it : c1)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    return (0);
}
0 1 2 3
0 1 2 3

array::pointer

Тип указателя на элемент.

typedef Ty *pointer;

Комментарии

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

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display first element " 0"
    Myarray::pointer ptr = &*c0.begin();
    std::cout << " " << *ptr;
    std::cout << std::endl;

    return (0);
}
0 1 2 3
0

array::rbegin

Задает начало обратной управляемой последовательности.

reverse_iterator rbegin()noexcept;
const_reverse_iterator rbegin() const noexcept;

Комментарии

Первые две функции-члена возвращают обратный итератор, указывающий на место сразу за концом управляемой последовательности. Таким образом, задается начало обратной последовательности.

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display last element " 3"
    Myarray::const_reverse_iterator it2 = c0.rbegin();
    std::cout << " " << *it2;
    std::cout << std::endl;

    return (0);
}
0 1 2 3
3

array::reference

Тип ссылки на элемент.

typedef Ty& reference;

Комментарии

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

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display first element " 0"
    Myarray::reference ref = *c0.begin();
    std::cout << " " << ref;
    std::cout << std::endl;

    return (0);
}
0 1 2 3
0

array::rend

Задает конец обратной управляемой последовательности.

reverse_iterator rend()noexcept;
const_reverse_iterator rend() const noexcept;

Комментарии

Функции-члены возвращают обратный итератор, указывающий на первый элемент последовательности (или непосредственно за окончание пустой последовательности)). Таким образом, он задает конец обратной последовательности.

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display first element " 0"
    Myarray::const_reverse_iterator it2 = c0.rend();
    std::cout << " " << *--it2;
    std::cout << std::endl;

    return (0);
}
0 1 2 3
0

array::reverse_iterator

Тип обратного итератора для управляемой последовательности.

typedef std::reverse_iterator<iterator> reverse_iterator;

Комментарии

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

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display last element " 3"
    Myarray::reverse_iterator it2 = c0.rbegin();
    std::cout << " " << *it2;
    std::cout << std::endl;

    return (0);
}
0 1 2 3
3

array::size

Подсчитывает количество элементов.

constexpr size_type size() const;

Комментарии

Функция-член возвращает значение N.

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display size " 4"
    std::cout << " " << c0.size();
    std::cout << std::endl;

    return (0);
}
0 1 2 3
4

array::size_type

Тип беззнакового расстояния между двумя элементами.

typedef std::size_t size_type;

Комментарии

Целочисленный тип без знака описывает объект, который может представлять длину любой управляемой последовательности. Это синоним типа std::size_t.

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display distance last-first " 4"
    Myarray::size_type diff = c0.end() - c0.begin();
    std::cout << " " << diff;
    std::cout << std::endl;

    return (0);
}
0 1 2 3
4

array::swap

Выполняет обмен содержимым между этим и другим массивом.

void swap(array& right);

Параметры

right
Массив для обмена содержимым.

Комментарии

Функция-член переключает управляемые последовательности между *this и правой. Он выполняет назначения элементов и вызовы конструктора пропорционально N.

Существует также функция, не являющейся членом swap , для замены двух array экземпляров.

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    Myarray c1 = { 4, 5, 6, 7 };
    c0.swap(c1);

    // display swapped contents " 4 5 6 7"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    swap(c0, c1);

    // display swapped contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    return (0);
}
0 1 2 3
4 5 6 7
0 1 2 3

array::value_type

Тип элемента.

typedef Ty value_type;

Комментарии

Этот тип является синонимом для параметра шаблона Ty.

Пример

#include <array>
#include <iostream>

typedef std::array<int, 4> Myarray;
int main()
{
    Myarray c0 = { 0, 1, 2, 3 };

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        std::cout << " " << it;
    }
    std::cout << std::endl;

    // display contents " 0 1 2 3"
    for (const auto& it : c0)
    {
        Myarray::value_type val = it;
        std::cout << " " << val;
    }
    std::cout << std::endl;

    return (0);
}
0 1 2 3
0 1 2 3

См. также раздел

<array>