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.
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::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 retorno

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 retorno

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 retorno

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 retorno

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>