Поделиться через


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

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

Синтаксис

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

Параметры

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

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

Участники

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