<array>Функции

Заголовок <массива> включает две функции, не являющиеся членами, get и swap, которые работают с объектами массива .

get
swap

get

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

template <int Index, class T, size_t N>
constexpr T& get(array<T, N>& arr) noexcept;

template <int Index, class T, size_t N>
constexpr const T& get(const array<T, N>& arr) noexcept;

template <int Index, class T, size_t N>
constexpr T&& get(array<T, N>&& arr) noexcept;

Параметры

Index
Смещение элемента.

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

Нет
Количество элементов в массиве.

Arr
Массив для выбора элемента.

Пример

#include <array>
#include <iostream>

using namespace std;

typedef array<int, 4> MyArray;

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

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

    // display odd elements " 1 3"
    cout << " " << get<1>(c0);
    cout << " " << get<3>(c0) << endl;
}
0 1 2 3
1 3

swap

Специализация шаблона, не являющегося членом, std::swap заменяет два объекта массива .

template <class Ty, std::size_t N>
void swap(array<Ty, N>& left, array<Ty, N>& right);

Параметры

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

Нет
Размер массива.

left
Первый массив для обмена.

right
Второй массив для обмена.

Замечания

Функция шаблона выполняет метод left.swap(right).

Пример

// std__array__swap.cpp
// compile with: /EHsc
#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 (Myarray::const_iterator it = c0.begin();
        it != c0.end(); ++it)
        std::cout << " " << *it;
    std::cout << std::endl;

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

    // display swapped contents " 4 5 6 7"
    for (Myarray::const_iterator it = c0.begin();
        it != c0.end(); ++it)
        std::cout << " " << *it;
    std::cout << std::endl;

    swap(c0, c1);

    // display swapped contents " 0 1 2 3"
    for (Myarray::const_iterator it = c0.begin();
        it != c0.end(); ++it)
        std::cout << " " << *it;
    std::cout << std::endl;

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

См. также

<array>.