Clase array
(biblioteca estándar de C++)
Describe un objeto que controla una secuencia de longitud N
de elementos de tipo Ty
. La secuencia se almacena como matriz de Ty
, que se encuentra en el objeto array<Ty, N>
.
Sintaxis
template <class Ty, std::size_t N>
class array;
Parámetros
Ty
El tipo de un elemento.
N
Número de elementos.
Miembros
Definición de tipo | Descripción |
---|---|
const_iterator |
El tipo de un iterador constante para la secuencia controlada. |
const_pointer |
El tipo de un puntero constante a un elemento. |
const_reference |
El tipo de una referencia constante a un elemento. |
const_reverse_iterator |
El tipo de un iterador invertido constante para la secuencia controlada. |
difference_type |
El tipo de una distancia con signo entre dos elementos. |
iterator |
El tipo de un iterador para la secuencia controlada. |
pointer |
El tipo de un puntero a un elemento. |
reference |
El tipo de una referencia a un elemento. |
reverse_iterator |
El tipo de un iterador invertido para la secuencia controlada. |
size_type |
El tipo de una distancia sin signo entre dos elementos. |
value_type |
El tipo de un elemento. |
Función miembro | Descripción |
---|---|
array |
Construye un objeto de matriz. |
assign |
(Obsoleto. Use fill ). Reemplaza todos los elementos. |
at |
Obtiene acceso a un elemento en una posición especificada. |
back |
Obtiene acceso al último elemento. |
begin |
Designa el principio de la secuencia controlada. |
cbegin |
Devuelve un iterador const de acceso aleatorio al primer elemento de la matriz. |
cend |
Devuelve un iterador const de acceso aleatorio que apunta justo después del final de la matriz. |
crbegin |
Devuelve un iterador constante al primer elemento de una matriz inversa. |
crend |
Devuelve un iterador constante al final de una matriz invertida. |
data |
Obtiene la dirección del primer elemento. |
empty |
Comprueba si hay algún elemento presente. |
end |
Designa el final de la secuencia controlada. |
fill |
Reemplaza todos los elementos por un valor especificado. |
front |
Obtiene acceso al primer elemento. |
max_size |
Cuenta el número de elementos. |
rbegin |
Designa el principio de la secuencia controlada inversa. |
rend |
Designa el final de la secuencia controlada inversa. |
size |
Cuenta el número de elementos. |
swap |
Intercambia el contenido de dos contenedores. |
Operator | Descripción |
---|---|
array::operator= |
Reemplaza la secuencia controlada. |
array::operator[] |
Obtiene acceso a un elemento en una posición especificada. |
Comentarios
El tipo tiene un constructor predeterminado array()
y un operador de asignación predeterminado operator=
, y cumple los requisitos de un aggregate
. Por lo tanto, los objetos de tipo array<Ty, N>
se pueden inicializar con un inicializador agregado. Por ejemplo,
array<int, 4> ai = { 1, 2, 3 };
crea el objeto ai
que contiene cuatro valores enteros, inicializa los tres primeros elementos a los valores 1, 2 y 3, respectivamente, e inicializa el cuarto a 0.
Requisitos
Encabezado: <array>
Espacio de nombres: std
array::array
Construye un objeto de matriz.
array();
array(const array& right);
Parámetros
right
Objeto o intervalo que se va a insertar.
Comentarios
El constructor predeterminado array()
deja la secuencia controlada sin inicializar (o inicializada de forma predeterminada). Se usa para especificar una secuencia controlada sin inicializar.
El constructor de copias array(const array& right)
inicializa la secuencia controlada con la secuencia [right.begin()
, right.end()
). Se usa para especificar una secuencia controlada inicial que es una copia de la secuencia controlada por el objeto de matriz right
.
Ejemplo
#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
Obsoleto en C++11, se reemplazó por fill
. Reemplaza todos los elementos.
array::at
Obtiene acceso a un elemento en una posición especificada.
reference at(size_type off);
constexpr const_reference at(size_type off) const;
Parámetros
off
Posición del elemento al que se accederá.
Comentarios
Las funciones miembro devuelven una referencia al elemento de la secuencia controlada en la posición off
. Si esa posición no es válida, la función produce un objeto de clase out_of_range
.
Ejemplo
#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
Obtiene acceso al último elemento.
reference back();
constexpr const_reference back() const;
Comentarios
Las funciones miembro devuelven una referencia al último elemento de la secuencia controlada, que no debe estar vacío.
Ejemplo
#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
Designa el principio de la secuencia controlada.
iterator begin() noexcept;
const_iterator begin() const noexcept;
Comentarios
Las funciones miembro devuelven un iterador de acceso aleatorio que apunta al primer elemento de la secuencia (o más allá del final de una secuencia vacía).
Ejemplo
#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
Devuelve un iterador const
que direcciona el primer elemento del intervalo.
const_iterator cbegin() const noexcept;
Valor devuelto
Iterador const
de acceso aleatorio que apunta al primer elemento del intervalo o la ubicación situada más allá del final de un intervalo vacío (para un intervalo vacío, cbegin() == cend()
).
Comentarios
Con el valor devuelto de cbegin
, los elementos del intervalo no se pueden modificar.
Se puede usar esta función miembro en lugar de la función miembro begin()
para garantizar que el valor devuelto es const_iterator
. Por lo general, se usa junto con la palabra clave de deducción de tipos auto
, como se muestra en el ejemplo siguiente. En el ejemplo se considera que Container
es un contenedor modificable (distinto de const
) de cualquier naturaleza que admite begin()
y cbegin()
.
auto i1 = Container.begin();
// i1 is Container<T>::iterator
auto i2 = Container.cbegin();
// i2 is Container<T>::const_iterator
array::cend
Devuelve un iterador const
que direcciona la ubicación situada más allá del último elemento de un intervalo.
const_iterator cend() const noexcept;
Valor devuelto
Iterador de acceso aleatorio que apunta justo después del final del intervalo.
Comentarios
cend
se usa para probar si un iterador ha sobrepasado el final de su intervalo.
Se puede usar esta función miembro en lugar de la función miembro end()
para garantizar que el valor devuelto es const_iterator
. Por lo general, se usa junto con la palabra clave de deducción de tipos auto
, como se muestra en el ejemplo siguiente. En el ejemplo se considera que Container
es un contenedor modificable (distinto de const
) de cualquier naturaleza que admite end()
y cend()
.
auto i1 = Container.end();
// i1 is Container<T>::iterator
auto i2 = Container.cend();
// i2 is Container<T>::const_iterator
El valor devuelto por cend
no se debe desreferenciar.
array::const_iterator
El tipo de un iterador constante para la secuencia controlada.
typedef implementation-defined const_iterator;
Comentarios
El tipo describe un objeto que puede actuar como un iterador de acceso aleatorio constante para la secuencia controlada.
Ejemplo
#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
El tipo de un puntero constante a un elemento.
typedef const Ty *const_pointer;
Comentarios
El tipo describe un objeto que puede actuar como un puntero constante a elementos de la secuencia.
Ejemplo
#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
El tipo de una referencia constante a un elemento.
typedef const Ty& const_reference;
Comentarios
El tipo describe un objeto que puede actuar como referencia constante a un elemento de la secuencia controlada.
Ejemplo
#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
El tipo de un iterador invertido constante para la secuencia controlada.
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
Comentarios
El tipo describe un objeto que puede actuar como un iterador inverso constante para la secuencia controlada.
Ejemplo
#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
Devuelve un iterador constante al primer elemento de una matriz inversa.
const_reverse_iterator crbegin() const;
Valor devuelto
Iterador inverso constante de acceso aleatorio que dirige al primer elemento de una matriz inversa o al que fue el último elemento de la matriz sin invertir.
Comentarios
Con el valor devuelto de crbegin
, el objeto de matriz no se puede modificar.
Ejemplo
#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
Devuelve un iterador constante que dirige a la ubicación siguiente al último elemento de una matriz invertida.
const_reverse_iterator crend() const noexcept;
Valor devuelto
Iterador constante de acceso aleatorio inverso que dirige a la ubicación siguiente al último elemento de una matriz invertida (la ubicación que había precedido al primer elemento de la matriz sin invertir).
Comentarios
crend
se utiliza con una matriz invertida tal como se usa array::cend
con una matriz.
Con el valor devuelto de crend
(adecuadamente reducido), el objeto de matriz no se puede modificar.
Se puede utilizar crend
para comprobar si un iterador inverso ha llegado al final de su matriz.
El valor devuelto por crend
no se debe desreferenciar.
Ejemplo
#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
Obtiene la dirección del primer elemento.
Ty *data();
const Ty *data() const;
Comentarios
Las funciones miembro devuelven la dirección del primer elemento de la secuencia controlada.
Ejemplo
#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
El tipo de una distancia con signo entre dos elementos.
typedef std::ptrdiff_t difference_type;
Comentarios
El tipo de entero con signo describe un objeto que puede representar la diferencia entre las direcciones de dos elementos cualesquiera de la secuencia controlada. Es un sinónimo del tipo std::ptrdiff_t
.
Ejemplo
#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
Comprueba si no hay ningún elemento presente.
constexpr bool empty() const;
Comentarios
La función miembro devuelve true solo si N == 0
.
Ejemplo
#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
Designa el final de la secuencia controlada.
reference end();
const_reference end() const;
Comentarios
Las funciones miembro devuelven un iterador de acceso aleatorio que apunta inmediatamente después del final de la secuencia.
Ejemplo
#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
Borra una matriz y copia los elementos especificados en la matriz vacía.
void fill(const Type& val);
Parámetros
val
Valor del elemento que se va a insertar en la matriz.
Comentarios
fill
reemplaza cada elemento de la matriz por el valor especificado.
Ejemplo
#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
Obtiene acceso al primer elemento.
reference front();
constexpr const_reference front() const;
Comentarios
Las funciones miembro devuelven una referencia al primer elemento de la secuencia controlada, que no debe estar vacío.
Ejemplo
#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
El tipo de un iterador para la secuencia controlada.
typedef implementation-defined iterator;
Comentarios
El tipo describe un objeto que puede actuar como un iterador de acceso aleatorio de la secuencia controlada.
Ejemplo
#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
Cuenta el número de elementos.
constexpr size_type max_size() const;
Comentarios
La función miembro devuelve N
.
Ejemplo
#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[]
Obtiene acceso a un elemento en una posición especificada.
reference operator[](size_type off);
constexpr const_reference operator[](size_type off) const;
Parámetros
off
Posición del elemento al que se accederá.
Comentarios
Las funciones miembro devuelven una referencia al elemento de la secuencia controlada en la posición off
. Si esa posición no es válida, el comportamiento es indefinido.
También hay una función no miembro get
disponible para obtener una referencia a un elemento de array
.
Ejemplo
#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=
Reemplaza la secuencia controlada.
array<Value> operator=(array<Value> right);
Parámetros
right
Contenedor que se va a copiar.
Comentarios
El operador miembro asigna cada elemento de right
al elemento correspondiente de la secuencia controlada y luego devuelve *this
. Se usa para reemplazar la secuencia controlada por una copia de la secuencia controlada de right
.
Ejemplo
#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
El tipo de un puntero a un elemento.
typedef Ty *pointer;
Comentarios
El tipo describe un objeto que puede actuar como un puntero a elementos de la secuencia.
Ejemplo
#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
Designa el principio de la secuencia controlada inversa.
reverse_iterator rbegin()noexcept;
const_reverse_iterator rbegin() const noexcept;
Comentarios
Las funciones miembro devuelven un iterador inverso que apunta inmediatamente después del final de la secuencia controlada. Por tanto, designa el principio de la secuencia inversa.
Ejemplo
#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
El tipo de una referencia a un elemento.
typedef Ty& reference;
Comentarios
El tipo describe un objeto que puede actuar como referencia a un elemento de la secuencia controlada.
Ejemplo
#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
Designa el final de la secuencia controlada inversa.
reverse_iterator rend()noexcept;
const_reverse_iterator rend() const noexcept;
Comentarios
Las funciones miembro devuelven un iterador inverso que apunta al primer elemento de la secuencia (o más allá del final de una secuencia vacía). Por tanto, designa el final de la secuencia inversa.
Ejemplo
#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
El tipo de un iterador invertido para la secuencia controlada.
typedef std::reverse_iterator<iterator> reverse_iterator;
Comentarios
El tipo describe un objeto que puede actuar como un iterador inverso para la secuencia controlada.
Ejemplo
#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
Cuenta el número de elementos.
constexpr size_type size() const;
Comentarios
La función miembro devuelve N
.
Ejemplo
#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
El tipo de una distancia sin signo entre dos elementos.
typedef std::size_t size_type;
Comentarios
El tipo de entero sin signo describe un objeto que puede representar la longitud de cualquier secuencia controlada. Es un sinónimo del tipo std::size_t
.
Ejemplo
#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
Intercambia el contenido de esta matriz con otra matriz.
void swap(array& right);
Parámetros
right
Matriz con la que se va a intercambiar el contenido.
Comentarios
La función miembro intercambia las secuencias controladas entre *this
y right. Realiza asignaciones de elementos y llamadas de constructores proporcionales a N
.
También hay una función no miembro swap
disponible para intercambiar dos array
instancias.
Ejemplo
#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
El tipo de un elemento.
typedef Ty value_type;
Comentarios
El tipo es un sinónimo del parámetro de plantilla Ty
.
Ejemplo
#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