Compartir a través de


funciones<array>

El <array> encabezado incluye tres funciones no miembro, get, swapy to_array que operan en objetos de matriz .

get

Devuelve una referencia al elemento especificado de la matriz.

template <std::size_t Index, class Type, std::size_t Size>
constexpr Type& get(std::array<Type, Size>& arr) noexcept;

template <std::size_t Index, class Type, std::size_t Size>
constexpr const Type& get(const std::array<Type, Size>& arr) noexcept;

template <std::size_t Index, class Type, std::size_t Size>
constexpr Type&& get(std::array<Type, Size>&& arr) noexcept;

template <std::size_t Index, class Type, std::size_t Size>
constexpr const Type&& get(const std::array<Type, Size>&& arr) noexcept;

Parámetros de plantilla

Index
El desplazamiento del elemento.

Type
El tipo de un elemento.

Size
El número de elementos de la matriz.

Parámetros

arr
La matriz de la que se selecciona.

Ejemplo

#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

Especialización de plantilla no miembro de std::swap que intercambia dos objetos matriz.

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

Parámetros de plantilla

Type
El tipo de un elemento.

Size
Se refiere al tamaño de la matriz.

Parámetros

left
Primera matriz que se va a intercambiar.

right
Segunda matriz que se va a intercambiar.

Comentarios

La función de plantilla ejecuta left.swap(right).

Ejemplo

// 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

to_array

Convierte una matriz integrada en un std::array objeto .

// C++20
template <class Type, std::size_t Size>
constexpr std::array<std::remove_cv_t<Type>, Size> to_array(Type (&arr)[Size]);

// C++20
template <class Type, std::size_t Size>
constexpr std::array<std::remove_cv_t<Type>, Size> to_array(Type (&&arr)[Size]);

Parámetros de plantilla

Type
El tipo de un elemento.

Size
Tamaño de la matriz de entrada.

Parámetros

arr
Matriz de entrada usada para la conversión.

Ejemplo

// std_to_array.cpp
// Requires /std:c++20 or later

#include <array>
#include <iostream>

int main()
{
    int arr1[]{ 1, 2, 3 };
    std::array<int, 3> arr2 = std::to_array(arr1);

    std::cout << "std::to_array(arr1):\n";
    for (const auto& i : arr2)
    {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    // The size is 7 as it includes the null terminator
    std::array<char, 7> arr3 = std::to_array("string");

    std::cout << "\nstd::to_array(\"string\"):\n";
    for (const auto& i : arr3)
    {
        std::cout << i << " ";
    }
    std::cout << std::endl;
}
std::to_array(arr1):
1 2 3 

std::to_array("string"):
s t r i n g 

Vea también

<array>