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