Classe array (Biblioteca Padrão C++)

Descreve um objeto que controla uma sequência de tamanho N de elementos do tipo Ty. A sequência é armazenada como uma matriz de Ty, contida no objeto array<Ty, N>.

Sintaxe

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

Parâmetros

Ty
O tipo de um elemento.

N
O número de elementos.

Membros

Definição de tipo Descrição
const_iterator O tipo de um iterador de constante para a sequência controlada.
const_pointer O tipo de um ponteiro de constante para um elemento.
const_reference O tipo de uma referência de constante para um elemento.
const_reverse_iterator O tipo de um iterador reverso de constante para a sequência controlada.
difference_type O tipo de uma distância com sinal entre dois elementos.
iterator O tipo de um iterador para a sequência controlada.
pointer O tipo de um ponteiro para um elemento.
reference O tipo de uma referência para um elemento.
reverse_iterator O tipo de um iterador inverso para a sequência controlada.
size_type O tipo de uma distância sem sinal entre dois elementos.
value_type O tipo de um elemento.
Função membro Descrição
array Constrói um objeto de matriz.
assign (Obsoleto. Use fill.) Substitui todos os elementos.
at Acessa um elemento em uma posição especificada.
back Acessa o último elemento.
begin Designa o início da sequência controlada.
cbegin Retorna um iterador const de acesso aleatório para o primeiro elemento na matriz.
cend Retorna um iterador const de acesso aleatório que aponta para imediatamente após o fim da matriz.
crbegin Retorna um iterador const para o primeiro elemento em uma matriz invertida.
crend Retorna um iterador const ao final de uma matriz invertido.
data Obtém o endereço do primeiro elemento.
empty Testa se há elementos presentes.
end Designa o fim da sequência controlada.
fill Substitui todos os elementos por um valor especificado.
front Acessa o primeiro elemento.
max_size Conta o número de elementos.
rbegin Designa o início da sequência controlada invertida.
rend Designa o fim da sequência controlada invertida.
size Conta o número de elementos.
swap Alterna o conteúdo de dois contêineres.
Operador Descrição
array::operator= Substitui a sequência controlada.
array::operator[] Acessa um elemento em uma posição especificada.

Comentários

O tipo tem um construtor padrão array() e um operador de atribuição padrão operator= e atende aos requisitos para um aggregate. Portanto, os objetos do tipo array<Ty, N> podem ser inicializados usando um inicializador agregado. Por exemplo,

array<int, 4> ai = { 1, 2, 3 };

cria o objeto ai que contém quatro valores inteiros, inicializa os três primeiros elementos para os valores 1, 2 e 3, respectivamente, e inicializa o quarto elemento para 0.

Requisitos

Cabeçalho<array>:

Namespace:std

array::array

Constrói um objeto de matriz.

array();

array(const array& right);

Parâmetros

right
Objeto ou intervalo a inserir.

Comentários

O construtor padrão array() deixa a sequência não inicializada controlada (ou padrão inicializado). Você pode usá-lo para especificar uma sequência controlada não inicializada.

O construtor de cópia array(const array& right) inicializa a sequência controlada com a sequência [direita.begin(), direita.end()). Você pode usá-lo para especificar uma sequência controlada inicial que é uma cópia da sequência controlada pelo objeto de matriz right.

Exemplo

#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 no C++ 11, substituído por fill. Substitui todos os elementos.

array::at

Acessa um elemento em uma posição especificada.

reference at(size_type off);

constexpr const_reference at(size_type off) const;

Parâmetros

off
Posição do elemento a acessar.

Comentários

As funções membro retornam uma referência ao elemento da sequência controlada na posição off. Se a posição for inválida, a função lançará um objeto da classe out_of_range.

Exemplo

#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

Acessa o último elemento.

reference back();

constexpr const_reference back() const;

Comentários

As funções membro retornam uma referência ao último elemento da sequência controlada, que deve ser não vazio.

Exemplo

#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 o início da sequência controlada.

iterator begin() noexcept;
const_iterator begin() const noexcept;

Comentários

A função membro retorna um iterador de acesso aleatório que aponta para o primeiro elemento da sequência (ou imediatamente após o fim de uma sequência vazia).

Exemplo

#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

Retorna um iterador const que trata o primeiro elemento no intervalo.

const_iterator cbegin() const noexcept;

Valor de Devolução

Um iterador de acesso aleatório const que aponta o primeiro elemento do intervalo ou o local logo após o fim de um intervalo vazio (para um intervalo vazio, cbegin() == cend()).

Comentários

Com o valor retornado de cbegin, os elementos no intervalo não podem ser modificados.

Você pode usar essa função membro no lugar da função membro begin(), de modo a garantir que o valor de retorno seja const_iterator. Normalmente, ela é usada com a palavra-chave de dedução de tipo auto, conforme mostrado no exemplo a seguir. No exemplo, considere Container como um contêiner modificável (não const) de qualquer tipo, que dá suporte para begin() e cbegin().

auto i1 = Container.begin();
// i1 is Container<T>::iterator
auto i2 = Container.cbegin();

// i2 is Container<T>::const_iterator

array::cend

Retorna um iterador const que trata o local logo após o último elemento em um intervalo.

const_iterator cend() const noexcept;

Valor de Devolução

Um iterador de acesso aleatório que aponta para além do fim do intervalo.

Comentários

cend é usado para testar se um iterador passou do fim de seu intervalo.

Você pode usar essa função membro no lugar da função membro end(), de modo a garantir que o valor de retorno seja const_iterator. Normalmente, ela é usada com a palavra-chave de dedução de tipo auto, conforme mostrado no exemplo a seguir. No exemplo, considere Container como um contêiner modificável (não const) de qualquer tipo, que dá suporte para end() e cend().

auto i1 = Container.end();
// i1 is Container<T>::iterator
auto i2 = Container.cend();

// i2 is Container<T>::const_iterator

O valor retornado por cend não deve ser desreferenciado.

array::const_iterator

O tipo de um iterador de constante para a sequência controlada.

typedef implementation-defined const_iterator;

Comentários

O tipo descreve um objeto que pode servir como um iterador de acesso aleatório constante para a sequência controlada.

Exemplo

#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

O tipo de um ponteiro de constante para um elemento.

typedef const Ty *const_pointer;

Comentários

O tipo descreve um objeto que pode servir como um ponteiro de constante para elementos da sequência.

Exemplo

#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

O tipo de uma referência de constante para um elemento.

typedef const Ty& const_reference;

Comentários

O tipo descreve um objeto que pode servir como uma referência constante para um elemento da sequência controlada.

Exemplo

#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

O tipo de um iterador reverso de constante para a sequência controlada.

typedef std::reverse_iterator<const_iterator> const_reverse_iterator;

Comentários

O tipo descreve um objeto que pode servir como um iterador inverso constante para a sequência controlada.

Exemplo

#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

Retorna um iterador const para o primeiro elemento em uma matriz invertida.

const_reverse_iterator crbegin() const;

Valor de Devolução

Um iterador de acesso aleatório invertido const que trata do primeiro elemento em uma matriz invertida ou que trata de qual foi o último elemento na matriz não invertida.

Comentários

Com o valor retornado de crbegin, o objeto de matriz não pode ser modificado.

Exemplo

#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

Retorna um iterador const que trata o local após o último elemento em uma matriz invertida.

const_reverse_iterator crend() const noexcept;

Valor de Devolução

Um iterador de acesso aleatório inverso const que trata o local após o último elemento em uma matriz invertida (o local que precedeu o primeiro elemento na matriz não invertida).

Comentários

crend é usado com uma matriz invertida, assim como array::cend é usado com uma matriz.

Com o valor retornado de crend (adequadamente diminuído), o objeto de matriz não pode ser modificado.

crend pode ser usado para testar se um iterador invertido alcançou o final de sua matriz.

O valor retornado por crend não deve ser desreferenciado.

Exemplo

#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

Obtém o endereço do primeiro elemento.

Ty *data();

const Ty *data() const;

Comentários

As funções membro retornam o endereço do primeiro elemento na sequência controlada.

Exemplo

#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

O tipo de uma distância com sinal entre dois elementos.

typedef std::ptrdiff_t difference_type;

Comentários

O tipo inteiro com sinal descreve um objeto que pode representar a diferença entre os endereços de dois elementos quaisquer na sequência controlada. É um sinônimo para o tipo std::ptrdiff_t.

Exemplo

#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

Testa se nenhum elemento está presente.

constexpr bool empty() const;

Comentários

A função membro retornará true somente se N == 0.

Exemplo

#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 o fim da sequência controlada.

reference end();

const_reference end() const;

Comentários

As funções membro retornam um iterador de acesso aleatório que aponta para logo além do fim da sequência.

Exemplo

#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

Apaga uma matriz e copia os elementos especificados para a matriz vazia.

void fill(const Type& val);

Parâmetros

val
O valor do elemento sendo inserido na matriz.

Comentários

fill substitui cada elemento da matriz pelo valor especificado.

Exemplo

#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

Acessa o primeiro elemento.

reference front();

constexpr const_reference front() const;

Comentários

As funções membro retornam uma referência ao primeiro elemento da sequência controlada, que deve ser não vazia.

Exemplo

#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

O tipo de um iterador para a sequência controlada.

typedef implementation-defined iterator;

Comentários

O tipo descreve um objeto que pode servir como um iterador de acesso aleatório para a sequência controlada.

Exemplo

#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

Conta o número de elementos.

constexpr size_type max_size() const;

Comentários

A função membro retorna N.

Exemplo

#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[]

Acessa um elemento em uma posição especificada.

reference operator[](size_type off);

constexpr const_reference operator[](size_type off) const;

Parâmetros

off
Posição do elemento a acessar.

Comentários

As funções membro retornam uma referência ao elemento da sequência controlada na posição off. Se a posição for inválida, o comportamento será indefinido.

Também há uma função get não membro disponível para obter uma referência a um elemento de um array.

Exemplo

#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=

Substitui a sequência controlada.

array<Value> operator=(array<Value> right);

Parâmetros

right
O contêiner a ser copiado.

Comentários

O operador membro atribui cada elemento de right ao elemento correspondente da sequência controlada e, em seguida, retorna *this. Você pode usá-lo para substituir a sequência controlada por uma cópia da sequência controlada em right.

Exemplo

#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

O tipo de um ponteiro para um elemento.

typedef Ty *pointer;

Comentários

O tipo descreve um objeto que pode servir como um ponteiro para elementos da sequência.

Exemplo

#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 o início da sequência controlada invertida.

reverse_iterator rbegin()noexcept;
const_reverse_iterator rbegin() const noexcept;

Comentários

As funções membro retornam um iterador invertido que aponta pra logo além do fim da sequência controlada. Assim, ele designa o início da sequência invertida.

Exemplo

#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

O tipo de uma referência para um elemento.

typedef Ty& reference;

Comentários

O tipo descreve um objeto que pode servir como uma referência para um elemento da sequência controlada.

Exemplo

#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 o fim da sequência controlada invertida.

reverse_iterator rend()noexcept;
const_reverse_iterator rend() const noexcept;

Comentários

As funções membro retornam um iterador invertido que aponta para o primeiro elemento da sequência (ou imediatamente após o fim de uma sequência vazia). Portanto, ele designa o fim da sequência invertida.

Exemplo

#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

O tipo de um iterador inverso para a sequência controlada.

typedef std::reverse_iterator<iterator> reverse_iterator;

Comentários

O tipo descreve um objeto que pode servir como um iterador invertido para a sequência controlada.

Exemplo

#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

Conta o número de elementos.

constexpr size_type size() const;

Comentários

A função membro retorna N.

Exemplo

#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

O tipo de uma distância sem sinal entre dois elementos.

typedef std::size_t size_type;

Comentários

O tipo inteiro sem sinal descreve um objeto que pode representar o tamanho de qualquer sequência controlada. É um sinônimo para o tipo std::size_t.

Exemplo

#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

Troca o conteúdo dessa matriz com outra matriz.

void swap(array& right);

Parâmetros

right
Matriz com a qual trocar conteúdo.

Comentários

A função membro troca as sequências controladas entre *this e direita. Realiza atribuições de elemento e chamadas do construtor proporcionais a N.

Também há uma função swap não membro disponível para trocar duas instâncias de array.

Exemplo

#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

O tipo de um elemento.

typedef Ty value_type;

Comentários

O tipo é um sinônimo do parâmetro de modeloTy.

Exemplo

#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

Confira também

<array>