[ Web Proxy ]
URL:
Viewing: http://es.cppreference.com/cpp/container/array [Back]  [Original]

std::array - cppreference.com
cppreference.com
Espacios de nombres
Variantes

std::array

De cppreference.com
 
 
 
 
Definido en el archivo de encabezado <array>
template< 
    class T, 
    std::size_t N 
> struct array;
(desde C++11)

std::array es un contenedor que encapsula arrays de tamao fijo.

Este contenedor es un tipo agregado con la misma semntica que una estructura que alberga un array estilo C T[N] como su nico miembro no esttico. A diferencia de un array estilo C, no decae a T* automticamente. Como tipo agregado, puede inicializarse con la inicializacin de agregado dados a lo sumo N inicializadores que son convertibles a T: std::array<int, 3> a = {1,2,3};.

La estructura combina el rendimiento y la accesibilidad de un array estilo C con los beneficios de un contenedor estndar, tales como el conocimiento de su propio tamao, soporte de asignacin, iteradores de acceso aleatorio, etc.

std::array satisface los requerimientos de Contenedor y ContenedorReversible. Con la excepcin que un std::array construido por defecto no est vacio y que la complejidad de intercambio es lineal, satisface los requerimientos de ContenedorContiguo (desde C++17) y satisface parcialmente los requerimientos de ContenedorDeSecuencia.

Hay un caso especial para los std::arrays de longitud cero (N == 0). En tal caso, array.begin() == array.end(), que es un valor nico. El efecto de llamar a front() o a back() en un std::array de tamao cero no est definido.

Un std::array tambin puede usarse como una tupla de N elementos del mismo tipo.

Invalidacin de iteradores

Como regla, los iteradores a un std::array nunca se invalidan durante el tiempo de vida del array. Observa, sin embargo, que durante swap, el iterador continuar apuntando al mismo elemento del std::array, y consecuentemente cambiar su valor.

Parmetros de plantilla

T - element type Debe ser ConstruiblePorMovimiento y AsignablePorMovimiento.
N - El nmero de elementos en el array o 0.

Tipos miembro

Tipo miembro Definicin
value_type T [editar]
size_type std::size_t [editar]
difference_type std::ptrdiff_t [editar]
reference value_type& [editar]
const_reference const value_type& [editar]
pointer T*[editar]
const_pointer const T*[editar]
iterator IteradorDeAccesoAleatorioLegado e IteradorConstexpr (desde C++20)que es un TipoLiteral (desde C++17) [editar]
const_iterator IteradorDeAccesoAleatorioLegado constante e IteradorConstexpr (desde C++20)que es un TipoLiteral (desde C++17) [editar]
reverse_iterator std::reverse_iterator<iterator> [editar]
const_reverse_iterator std::reverse_iterator<const_iterator> [editar]

Funciones miembro

Funciones miembro definidas implcitamente
(constructor)
(implcitamente declarado)
Inicializa el array siguiendo las reglas de la inicializacin de agregado (la inicializacin por defecto puede resultar en valores indeterminados para tipos T que no sean clases)
(funcin miembro pblica)
(destructor)
(implcitamente declarado)
Destruye cada elemento del array
(funcin miembro pblica)
operator=
(implcitamente declarado)
Sobrescribe cada elemento del array con el elemento correspondiente de otro array
(funcin miembro pblica)
Acceso a elementos
Accede al elemento especificado con comprobacin de lmites.
(funcin miembro pblica) [editar]
Accede el elemento especificado.
(funcin miembro pblica) [editar]
(C++11)
Accede al primer elemento.
(funcin miembro pblica) [editar]
(C++11)
Accede al ltimo elemento.
(funcin miembro pblica) [editar]
(C++11)
Acceso directo al array subyacente.
(funcin miembro pblica) [editar]
Iteradores
Devuelve un iterador al principio.
(funcin miembro pblica) [editar]
(C++11)
Devuelve un iterador al final.
(funcin miembro pblica) [editar]
Devuelve un iterador inverso al principio.
(funcin miembro pblica) [editar]
Devuelve un iterador inverso al final.
(funcin miembro pblica) [editar]
Capacidad
(C++11)
Comprueba si el contenedor est vaco.
(funcin miembro pblica) [editar]
(C++11)
Devuelve el nmero de elementos.
(funcin miembro pblica) [editar]
(C++11)
Devuelve el nmero mximo posible de elementos.
(funcin miembro pblica) [editar]
Operaciones
Llena el contenedor con el valor especificado
(funcin miembro pblica) [editar]
(C++11)
Intercambia el contenido.
(funcin miembro pblica) [editar]

Funciones no miembro

(eliminado en C++20)(eliminado en C++20)(eliminado en C++20)(eliminado en C++20)(eliminado en C++20)(C++20)
Compara lexicogrficamente los valores de array.
(plantilla de funcin) [editar]
Accede a un elemento de un array.
(plantilla de funcin) [editar]
Especializa el algoritmo std::swap.
(plantilla de funcin) [editar]
(C++20)
Crea un objeto std::array a partir de un array integrado.
(plantilla de funcin) [editar]

Clases auxiliares

obtiene el tamao de un array
Original:
obtains the size of an array
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(especializacin de plantilla de clase) [editar]
se obtiene el tipo de los elementos de array
Original:
obtains the type of the elements of array
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(especializacin de plantilla de clase) [editar]

Guas de deduccin

(desde C++17)

Ejemplo

#include <algorithm>
#include <array>
#include <iostream>
#include <iterator>
#include <string>

int main()
{
    // la construccin usa la inicializacin de agregado
    std::array<int, 3> a1{{1, 2, 3}}; // llaves dobles requeridas en C++11 previo a
                                        // la revisin CWG 1270 (no se necesita en C++11
                                        // despus de la revisin y en C++14 y posterior)

    std::array<int, 3> a2 = {1, 2, 3};  // nunca se requieren llaves dobles despus de =

    std::array<std::string, 2> a3 = { std::string("a"), "b" };

    // se ofrece apoyo para las operaciones de contenedores
    std::sort(a1.begin(), a1.end());
    std::ranges::reverse_copy(a2, std::ostream_iterator<int>(std::cout, " "));
    std::cout << '\n';
    
    // se ofrece apoyo para bucle for basado en rango
    std::array<std::string, 2> a3{"E", "\u018E"};
    for (const auto& s : a3)
        std::cout << s << ' ';
    std::cout << '\n';

    // gua de deduccin para creacin de arrays (desde C++17)
    [[maybe_unused]] std::array a4{3.0, 1.0, 4.0}; // std::array<double, 3>

    // el comportamiento de elementos no especificados
    // es el mismo que con los arrays integrados
    [[maybe_unused]] std::array<int, 2> a5; // no inic. de lista, a5[0] y a5[1]
                                            // se inicializan p. defecto
    [[maybe_unused]] std::array<int, 2> a6{}; // inic. de lista, ambos elems. se
                                              // inicializan p. valor, a6[0] = a6[1] = 0
    [[maybe_unused]] std::array<int, 2> a7{1}; // inic. de lista, elem. no especificado se
                                               // inicializa p. valor, a7[0] = 1, a7[1] = 0
}

Salida:

3 2 1
E 

Vase tambin

array contiguo in situ, de capacidad fija y redimensionable dinmicamente
(plantilla de clase) [editar]
Array dinmico contiguo.
(plantilla de clase) [editar]
Cola doblemente terminada (deque).
(plantilla de clase) [editar]
Crea un objeto std::array cuyo tamao y opcionalmente tipo de elemento se deducen a partir de los argumentos.
(plantilla de funcin) [editar]

Web Proxy Viewer  |  New URL  |  Original Page