Partilhar via


deque (STL/CLR)

A classe de modelo descreve um objeto que controla uma sequência de elementos de comprimento variável que tem acesso aleatório. Você usa o contêiner deque para gerenciar uma sequência de elementos que se parece com um bloco contíguo de armazenamento, mas que pode crescer ou diminuir em qualquer extremidade sem a necessidade de copiar quaisquer elementos restantes. Assim, ele pode implementar eficientemente um double-ended queue. (Daí o nome.)

Na descrição abaixo, GValue é o mesmo que Value a menos que este último seja um tipo ref, caso em que é Value^.

Sintaxe

template<typename Value>
    ref class deque
        :   public
        System::ICloneable,
        System::Collections::IEnumerable,
        System::Collections::ICollection,
        System::Collections::Generic::IEnumerable<GValue>,
        System::Collections::Generic::ICollection<GValue>,
        System::Collections::Generic::IList<GValue>,
        Microsoft::VisualC::StlClr::IDeque<GValue>
    { ..... };

Parâmetros

GValue
O tipo genérico de um elemento na sequência controlada.

valor
O tipo de um elemento na sequência controlada.

Requerimentos

Cabeçalho:<cliext/deque>

Espaço de nomes: cliext

Declarações

Definição de tipo Descrição
deque::const_iterator (STL/CLR) O tipo de iterador constante para a sequência controlada.
deque::const_reference (STL/CLR) O tipo de referência constante a um elemento.
deque::const_reverse_iterator (STL/CLR) O tipo de iterador reverso constante para a sequência controlada.
deque::d ifference_type (STL/CLR) O tipo de distância assinada entre dois elementos.
deque::generic_container (STL/CLR) O tipo da interface genérica para o contêiner.
deque::generic_iterator (STL/CLR) O tipo de um iterador para a interface genérica para o contêiner.
deque::generic_reverse_iterator (STL/CLR) O tipo de um iterador reverso para a interface genérica para o contêiner.
deque::generic_value (STL/CLR) O tipo de um elemento para a interface genérica para o contêiner.
deque::iterador (STL/CLR) O tipo de iterador para a sequência controlada.
deque::referência (STL/CLR) O tipo de referência a um elemento.
deque::reverse_iterator (STL/CLR) O tipo de iterador reverso para a sequência controlada.
deque::size_type (STL/CLR) O tipo de distância assinada entre dois elementos.
deque::value_type (STL/CLR) O tipo de um elemento.
Função de Membro Descrição
deque::atribuir (STL/CLR) Substitui todos os elementos.
deque::at (STL/CLR) Acessa um elemento em uma posição especificada.
deque::voltar (STL/CLR) Acessa o último elemento.
deque::begin (STL/CLR) Designa o início da sequência controlada.
deque::clear (STL/CLR) Remove todos os elementos.
deque::d eque (STL/CLR) Constrói um objeto de contêiner.
deque::vazio (STL/CLR) Testa se nenhum elemento está presente.
deque::end (STL/CLR) Designa o final da sequência controlada.
deque::erase (STL/CLR) Remove elementos em posições especificadas.
deque::frente (STL/CLR) Acessa o primeiro elemento.
deque::inserir (STL/CLR) Adiciona elementos em uma posição especificada.
deque::p op_back (STL/CLR) Remove o último elemento.
deque::p op_front (STL/CLR) Remove o primeiro elemento.
deque::p ush_back (STL/CLR) Adiciona um novo último elemento.
deque::p ush_front (STL/CLR) Adiciona um novo primeiro elemento.
deque::rbegin (STL/CLR) Designa o início da sequência controlada invertida.
deque::rend (STL/CLR) Designa o final da sequência controlada invertida.
deque::redimensionamento (STL/CLR) Altera o número de elementos.
deque::tamanho (STL/CLR) Conta o número de elementos.
deque::swap (STL/CLR) Troca o conteúdo de dois contêineres.
deque::to_array (STL/CLR) Copia a sequência controlada para uma nova matriz.
Propriedade Descrição
deque::back_item (STL/CLR) Acessa o último elemento.
deque::front_item (STL/CLR) Acessa o primeiro elemento.
Operador Descrição
deque::operador!= (STL/CLR) Determina se dois objetos deque não são iguais.
deque::operador (STL/CLR) Acessa um elemento em uma posição especificada.
operador< (deque) (STL/CLR) Determina se um objeto deque é menor que outro objeto deque.
operador<= (deque) (STL/CLR) Determina se um objeto deque é menor ou igual a outro objeto deque.
operador= (deque) (STL/CLR) Substitui a sequência controlada.
operador== (deque) (STL/CLR) Determina se um objeto deque é igual a outro objeto deque.
operador> (deque) (STL/CLR) Determina se um objeto deque é maior do que outro objeto deque.
operador>= (deque) (STL/CLR) Determina se um objeto deque é maior ou igual a outro objeto deque.

Interfaces

Interface Descrição
ICloneable Duplicar um objeto.
IEnumerable Sequência através de elementos.
ICollection Manter grupo de elementos.
IEnumerable<T> Seqüência através de elementos digitados.
ICollection<T> Manter grupo de elementos digitados.
IList<T> Manter um grupo ordenado de elementos digitados.
IDeque<Valor> Manter recipiente genérico.

Comentários

O objeto aloca e libera armazenamento para a sequência que controla por meio de uma matriz armazenada de identificadores que designam blocos de elementos Value. A matriz cresce sob demanda. O crescimento ocorre de tal forma que o custo de antecipar ou anexar um novo elemento é tempo constante, e nenhum elemento restante é perturbado. Você também pode remover um elemento em qualquer extremidade em tempo constante e sem perturbar os elementos restantes. Assim, um deque é um bom candidato para o contêiner subjacente para a fila de de classe de modelo (STL/CLR) ou pilha de de classe de modelo (STL/CLR).

Um objeto deque suporta iteradores de acesso aleatório, o que significa que você pode se referir a um elemento diretamente dada sua posição numérica, contando de zero para o primeiro elemento (frontal) para deque::size (STL/CLR)() - 1 para o último elemento (verso). Isso também significa que um deque é um bom candidato para o contêiner subjacente para a classe de modelo priority_queue (STL/CLR).

Um iterador de deque armazena um identificador para seu objeto deque associado, juntamente com o viés do elemento que ele designa. Você pode usar iteradores somente com seus objetos de contêiner associados. O enviesamento de um elemento deque não é necessariamente o mesmo que a sua posição. O primeiro elemento inserido tem viés zero, o próximo elemento anexado tem viés 1, mas o próximo elemento prepended tem viés -1.

Inserir ou apagar elementos em qualquer extremidade não altera o valor de um elemento armazenado em qualquer viés válido. Inserir ou apagar um elemento interior, no entanto, pode alterar o valor do elemento armazenado em um determinado viés, de modo que o valor designado por um iterador também pode mudar. (O recipiente pode ter que copiar elementos para cima ou para baixo para criar um orifício antes de uma inserção ou para preencher um orifício após um apagamento.) No entanto, um iterador de deque permanece válido enquanto seu viés designar um elemento válido. Além disso, um iterador válido permanece desreferendável -- você pode usá-lo para acessar ou alterar o valor do elemento que ele designa -- desde que seu viés não seja igual ao viés para o iterador retornado por end().

Apagar ou remover um elemento chama o destruidor por seu valor armazenado. Destruir o recipiente apaga todos os elementos. Assim, um contêiner cujo tipo de elemento é uma classe ref garante que nenhum elemento sobreviva ao contêiner. Note, no entanto, que um recipiente de alças não destruir seus elementos.

Membros

deque::atribuir (STL/CLR)

Substitui todos os elementos.

Sintaxe

void assign(size_type count, value_type val);
template<typename InIt>
    void assign(InIt first, InIt last);
void assign(System::Collections::Generic::IEnumerable<Value>^ right);

Parâmetros

contagem
Número de elementos a inserir.

primeira
Início do intervalo a inserir.

últimos
Fim do intervalo a inserir.

direito
Enumeração a inserir.

val
Valor do elemento a ser inserido.

Comentários

A primeira função de membro substitui a sequência controlada por uma repetição de contagem elementos de valor val. Você o usa para preencher o contêiner com elementos todos com o mesmo valor.

Se InIt for um tipo inteiro, a segunda função de membro se comportará da mesma forma que assign((size_type)first, (value_type)last). Caso contrário, substitui a sequência controlada pela sequência [first, last). Você o usa para fazer com que a sequência controlada copie outra sequência.

A função de terceiro membro substitui a sequência controlada pela sequência designada pelo enumerador direita. Você o usa para tornar a sequência controlada uma cópia de uma sequência descrita por um enumerador.

Exemplo

// cliext_deque_assign.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // assign a repetition of values
    cliext::deque<wchar_t> c2;
    c2.assign(6, L'x');
    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // assign an iterator range
    c2.assign(c1.begin(), c1.end() - 1);
    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // assign an enumeration
    c2.assign(   // NOTE: cast is not needed
        (System::Collections::Generic::IEnumerable<wchar_t>^)%c1);
    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
x x x x x x
a b
a b c

deque::at (STL/CLR)

Acessa um elemento em uma posição especificada.

Sintaxe

reference at(size_type pos);

Parâmetros

pos
Posição do elemento a aceder.

Comentários

A função de membro retorna uma referência ao elemento da sequência controlada na posição pos. Você o usa para ler ou escrever um elemento cuja posição você conhece.

Exemplo

// cliext_deque_at.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c" using at
    for (int i = 0; i < c1.size(); ++i)
        System::Console::Write("{0} ", c1.at(i));
    System::Console::WriteLine();

    // change an entry and redisplay
    c1.at(1) = L'x';
    for (int i = 0; i < c1.size(); ++i)
        System::Console::Write("{0} ", c1[i]);
    System::Console::WriteLine();
    return (0);
    }
a b c
a x c

deque::voltar (STL/CLR)

Acessa o último elemento.

Sintaxe

reference back();

Comentários

A função de membro retorna uma referência ao último elemento da sequência controlada, que deve ser não-vazia. Você o usa para acessar o último elemento, quando sabe que ele existe.

Exemplo

// cliext_deque_back.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // inspect last item
    System::Console::WriteLine("back() = {0}", c1.back());

    // alter last item and reinspect
    c1.back() = L'x';
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
back() = c
a b x

deque::back_item (STL/CLR)

Acessa o último elemento.

Sintaxe

property value_type back_item;

Comentários

A propriedade acessa o último elemento da sequência controlada, que deve estar não vazia. Você o usa para ler ou escrever o último elemento, quando sabe que ele existe.

Exemplo

// cliext_deque_back_item.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // inspect last item
    System::Console::WriteLine("back_item = {0}", c1.back_item);

    // alter last item and reinspect
    c1.back_item = L'x';
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
back_item = c
a b x

deque::begin (STL/CLR)

Designa o início da sequência controlada.

Sintaxe

iterator begin();

Comentários

A função de membro retorna um iterador de acesso aleatório que designa o primeiro elemento da sequência controlada, ou logo após o final de uma sequência vazia. Você o usa para obter um iterador que designa o início current da sequência controlada, mas seu status pode mudar se o comprimento da sequência controlada mudar.

Exemplo

// cliext_deque_begin.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // inspect first two items
    cliext::deque<wchar_t>::iterator it = c1.begin();
    System::Console::WriteLine("*begin() = {0}", *it);
    System::Console::WriteLine("*++begin() = {0}", *++it);

    // alter first two items and reinspect
    *--it = L'x';
    *++it = L'y';
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
*begin() = a
*++begin() = b
x y c

deque::clear (STL/CLR)

Remove todos os elementos.

Sintaxe

void clear();

Comentários

A função de membro efetivamente chama deque::erase (STL/CLR)(deque::begin (STL/CLR)(),deque::end (STL/CLR)()). Use-o para garantir que a sequência controlada esteja vazia.

Exemplo

// cliext_deque_clear.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // clear the container and reinspect
    c1.clear();
    System::Console::WriteLine("size() = {0}", c1.size());

    // add elements and clear again
    c1.push_back(L'a');
    c1.push_back(L'b');

    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    c1.clear();
    System::Console::WriteLine("size() = {0}", c1.size());
    return (0);
    }
a b c
size() = 0
a b
size() = 0

deque::const_iterator (STL/CLR)

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

Sintaxe

typedef T2 const_iterator;

Comentários

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

Exemplo

// cliext_deque_const_iterator.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c"
    cliext::deque<wchar_t>::const_iterator cit = c1.begin();
    for (; cit != c1.end(); ++cit)
        System::Console::Write("{0} ", *cit);
    System::Console::WriteLine();
    return (0);
    }
a b c

deque::const_reference (STL/CLR)

O tipo de referência constante a um elemento.

Sintaxe

typedef value_type% const_reference;

Comentários

O tipo descreve uma referência constante a um elemento.

Exemplo

// cliext_deque_const_reference.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    cliext::deque<wchar_t>::const_iterator cit = c1.begin();
    for (; cit != c1.end(); ++cit)
        {   // get a const reference to an element
        cliext::deque<wchar_t>::const_reference cref = *cit;
        System::Console::Write("{0} ", cref);
        }
    System::Console::WriteLine();
    return (0);
    }
a b c

deque::const_reverse_iterator (STL/CLR)

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

Sintaxe

typedef T4 const_reverse_iterator;

Comentários

O tipo descreve um objeto de tipo não especificado T4 que pode servir como um iterador reverso constante para a sequência controlada.

Exemplo

// cliext_deque_const_reverse_iterator.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c" reversed
    cliext::deque<wchar_t>::const_reverse_iterator crit = c1.rbegin();
    cliext::deque<wchar_t>::const_reverse_iterator crend = c1.rend();
    for (; crit != crend; ++crit)
        System::Console::Write("{0} ", *crit);
    System::Console::WriteLine();
    return (0);
    }
c b a

deque::d eque (STL/CLR)

Constrói um objeto de contêiner.

Sintaxe

deque();
deque(deque<Value>% right);
deque(deque<Value>^ right);
explicit deque(size_type count);
deque(size_type count, value_type val);
template<typename InIt>
    deque(InIt first, InIt last);
deque(System::Collections::Generic::IEnumerable<Value>^ right);

Parâmetros

contagem
Número de elementos a inserir.

primeira
Início do intervalo a inserir.

últimos
Fim do intervalo a inserir.

direito
Objeto ou intervalo a ser inserido.

val
Valor do elemento a ser inserido.

Comentários

O construtor:

deque();

Inicializa a sequência controlada sem elementos. Você o usa para especificar uma sequência controlada inicial vazia.

O construtor:

deque(deque<Value>% right);

Inicializa a sequência controlada com a sequência [right.begin(), right.end()). Você o usa para especificar uma sequência controlada inicial que é uma cópia da sequência controlada pelo objeto deque direito. Para obter mais informações sobre os iteradores, consulte deque::begin (STL/CLR) e deque::end (STL/CLR).

O construtor:

deque(deque<Value>^ right);

Inicializa a sequência controlada com a sequência [right->begin(), right->end()). Você o usa para especificar uma sequência controlada inicial que é uma cópia da sequência controlada pelo objeto deque cujo identificador é direito.

O construtor:

explicit deque(size_type count);

Inicializa a sequência controlada com contagem elementos, cada um com valor value_type(). Você o usa para preencher o contêiner com elementos todos com o valor padrão.

O construtor:

deque(size_type count, value_type val);

Inicializa a sequência controlada com contagem elementos, cada um com valor val. Você o usa para preencher o contêiner com elementos todos com o mesmo valor.

O construtor:

template<typename InIt>

deque(InIt first, InIt last);

Inicializa a sequência controlada com a sequência [first, last). Você o usa para tornar a sequência controlada uma cópia de outra sequência.

O construtor:

deque(System::Collections::Generic::IEnumerable<Value>^ right);

Inicializa a sequência controlada com a sequência designada pelo enumerador direita. Você o usa para tornar a sequência controlada uma cópia de outra sequência descrita por um enumerador.

Exemplo

// cliext_deque_construct.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
// construct an empty container
    cliext::deque<wchar_t> c1;
    System::Console::WriteLine("size() = {0}", c1.size());

    // construct with a repetition of default values
    cliext::deque<wchar_t> c2(3);
    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", (int)elem);
    System::Console::WriteLine();

    // construct with a repetition of values
    cliext::deque<wchar_t> c3(6, L'x');
    for each (wchar_t elem in c3)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct with an iterator range
    cliext::deque<wchar_t>::iterator it = c3.end();
    cliext::deque<wchar_t> c4(c3.begin(), --it);
    for each (wchar_t elem in c4)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct with an enumeration
    cliext::deque<wchar_t> c5(   // NOTE: cast is not needed
        (System::Collections::Generic::IEnumerable<wchar_t>^)%c3);
    for each (wchar_t elem in c5)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct by copying another container
    cliext::deque<wchar_t> c7(c3);
    for each (wchar_t elem in c7)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct by copying a container handle
    cliext::deque<wchar_t> c8(%c3);
    for each (wchar_t elem in c8)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    return (0);
    }
size() = 0
0 0 0
x x x x x x
x x x x x
x x x x x x
x x x x x x
x x x x x x

deque::d ifference_type (STL/CLR)

Os tipos de uma distância assinada entre dois elementos.

Sintaxe

typedef int difference_type;

Comentários

O tipo descreve uma contagem de elementos assinados.

Exemplo

// cliext_deque_difference_type.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // compute positive difference
    cliext::deque<wchar_t>::difference_type diff = 0;
    for (cliext::deque<wchar_t>::iterator it = c1.begin();
        it != c1.end(); ++it) ++diff;
    System::Console::WriteLine("end()-begin() = {0}", diff);

    // compute negative difference
    diff = 0;
    for (cliext::deque<wchar_t>::iterator it = c1.end();
        it != c1.begin(); --it) --diff;
    System::Console::WriteLine("begin()-end() = {0}", diff);
    return (0);
    }
a b c
end()-begin() = 3
begin()-end() = -3

deque::vazio (STL/CLR)

Testa se nenhum elemento está presente.

Sintaxe

bool empty();

Comentários

A função de membro retorna true para uma sequência controlada vazia. É equivalente a deque::size (STL/CLR)() == 0. Você o usa para testar se o deque está vazio.

Exemplo

// cliext_deque_empty.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    System::Console::WriteLine("size() = {0}", c1.size());
    System::Console::WriteLine("empty() = {0}", c1.empty());

    // clear the container and reinspect
    c1.clear();
    System::Console::WriteLine("size() = {0}", c1.size());
    System::Console::WriteLine("empty() = {0}", c1.empty());
    return (0);
    }
a b c
size() = 3
empty() = False
size() = 0
empty() = True

deque::end (STL/CLR)

Designa o final da sequência controlada.

Sintaxe

iterator end();

Comentários

A função de membro retorna um iterador de acesso aleatório que aponta logo além do final da sequência controlada. Você o usa para obter um iterador que designa a extremidade current da sequência controlada, mas seu status pode mudar se o comprimento da sequência controlada mudar.

Exemplo

// cliext_deque_end.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // inspect last two items
    cliext::deque<wchar_t>::iterator it = c1.end();
    --it;
    System::Console::WriteLine("*-- --end() = {0}", *--it);
    System::Console::WriteLine("*--end() = {0}", *++it);

    // alter first two items and reinspect
    *--it = L'x';
    *++it = L'y';
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
*-- --end() = b
*--end() = c
a x y

deque::erase (STL/CLR)

Remove elementos em posições especificadas.

Sintaxe

iterator erase(iterator where);
iterator erase(iterator first, iterator last);

Parâmetros

primeira
Início do intervalo para apagar.

últimos
Fim do intervalo para apagar.

onde
Elemento a apagar.

Comentários

A primeira função de membro remove o elemento da sequência controlada apontada por onde. Você o usa para remover um único elemento.

A função de segundo membro remove os elementos da sequência controlada no intervalo [first, last). Use-o para remover zero ou mais elementos contíguos.

Ambas as funções de membro retornam um iterador que designa o primeiro elemento restante além de quaisquer elementos removidos, ou deque::end (STL/CLR)() se tal elemento não existir.

Ao apagar elementos, o número de cópias de elementos é linear no número de elementos entre o final da eliminação e o final mais próximo da sequência. (Ao apagar um ou mais elementos em qualquer extremidade da sequência, nenhuma cópia de elemento ocorre.)

Exemplo

// cliext_deque_erase.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // erase an element and reinspect
    System::Console::WriteLine("erase(begin()) = {0}",
        *c1.erase(c1.begin()));

    // add elements and display " b c d e"
    c1.push_back(L'd');
    c1.push_back(L'e');
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // erase all but end
    cliext::deque<wchar_t>::iterator it = c1.end();
    System::Console::WriteLine("erase(begin(), end()-1) = {0}",
        *c1.erase(c1.begin(), --it));
    System::Console::WriteLine("size() = {0}", c1.size());
    return (0);
    }
a b c
erase(begin()) = b
b c d e
erase(begin(), end()-1) = e
size() = 1

deque::frente (STL/CLR)

Acessa o primeiro elemento.

Sintaxe

reference front();

Comentários

A função member retorna uma referência ao primeiro elemento da sequência controlada, que deve ser não-vazia. Você o usa para ler ou escrever o primeiro elemento, quando sabe que ele existe.

Exemplo

// cliext_deque_front.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // inspect first item
    System::Console::WriteLine("front() = {0}", c1.front());

    // alter first item and reinspect
    c1.front() = L'x';
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
front() = a
x b c

deque::front_item (STL/CLR)

Acessa o primeiro elemento.

Sintaxe

property value_type front_item;

Comentários

A propriedade acessa o primeiro elemento da sequência controlada, que deve ser não-vazia. Você o usa para ler ou escrever o primeiro elemento, quando sabe que ele existe.

Exemplo

// cliext_deque_front_item.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // inspect first item
    System::Console::WriteLine("front_item = {0}", c1.front_item);

    // alter first item and reinspect
    c1.front_item = L'x';
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
front_item = a
x b c

deque::generic_container (STL/CLR)

O tipo da interface genérica para o contêiner.

Sintaxe

typedef Microsoft::VisualC::StlClr::
    IDeque<generic_value>
    generic_container;

Comentários

O tipo descreve a interface genérica para essa classe de contêiner de modelo.

Exemplo

// cliext_deque_generic_container.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct a generic container
    cliext::deque<wchar_t>::generic_container^ gc1 = %c1;
    for each (wchar_t elem in gc1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // modify generic and display original
    gc1->insert(gc1->end(), L'd');
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // modify original and display generic
    c1.push_back(L'e');

    System::Collections::IEnumerator^ enum1 =
        gc1->GetEnumerator();
    while (enum1->MoveNext())
        System::Console::Write("{0} ", enum1->Current);
    System::Console::WriteLine();
    return (0);
    }
a b c
a b c
a b c d
a b c d e

deque::generic_iterator (STL/CLR)

O tipo de um iterador para uso com a interface genérica para o contêiner.

Sintaxe

typedef Microsoft::VisualC::StlClr::Generic::
    ContainerRandomAccessIterator<generic_value> generic_iterator;

Comentários

O tipo descreve um iterador genérico que pode ser usado com a interface genérica para essa classe de contêiner de modelo.

Exemplo

// cliext_deque_generic_iterator.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct a generic container
    cliext::deque<wchar_t>::generic_container^ gc1 = %c1;
    for each (wchar_t elem in gc1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // modify generic and display original
    cliext::deque<wchar_t>::generic_iterator gcit = gc1->begin();
    cliext::deque<wchar_t>::generic_value gcval = *gcit;
    *++gcit = gcval;
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
a b c
a a c

deque::generic_reverse_iterator (STL/CLR)

O tipo de iterador reverso para uso com a interface genérica para o contêiner.

Sintaxe

typedef Microsoft::VisualC::StlClr::Generic::
    ReverseRandomAccessIterator<generic_value> generic_reverse_iterator;

Comentários

O tipo descreve um iterador reverso genérico que pode ser usado com a interface genérica para essa classe de contêiner de modelo.

Exemplo

// cliext_deque_generic_reverse_iterator.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct a generic container
    cliext::deque<wchar_t>::generic_container^ gc1 = %c1;
    for each (wchar_t elem in gc1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // modify generic and display original
    cliext::deque<wchar_t>::generic_reverse_iterator gcit = gc1->rbegin();
    cliext::deque<wchar_t>::generic_value gcval = *gcit;
    *++gcit = gcval;
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
a b c
a c c

deque::generic_value (STL/CLR)

O tipo de um elemento para uso com a interface genérica para o contêiner.

Sintaxe

typedef GValue generic_value;

Comentários

O tipo descreve um objeto do tipo GValue que descreve o valor do elemento armazenado para uso com a interface genérica para essa classe de contêiner de modelo.

Exemplo

// cliext_deque_generic_value.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct a generic container
    cliext::deque<wchar_t>::generic_container^ gc1 = %c1;
    for each (wchar_t elem in gc1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // modify generic and display original
    cliext::deque<wchar_t>::generic_iterator gcit = gc1->begin();
    cliext::deque<wchar_t>::generic_value gcval = *gcit;
    *++gcit = gcval;
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
a b c
a a c

deque::inserir (STL/CLR)

Adiciona elementos em uma posição especificada.

Sintaxe

iterator insert(iterator where, value_type val);
void insert(iterator where, size_type count, value_type val);
template<typename InIt>
    void insert(iterator where, InIt first, InIt last);
void insert(iterator where,
    System::Collections::Generic::IEnumerable<Value>^ right);

Parâmetros

contagem
Número de elementos a inserir.

primeira
Início do intervalo a inserir.

últimos
Fim do intervalo a inserir.

direito
Enumeração a inserir.

val
Valor do elemento a ser inserido.

onde
Onde no recipiente para inserir antes.

Comentários

Cada uma das funções de membro insere, antes do elemento apontado por onde na sequência controlada, uma sequência especificada pelos operandos restantes.

A primeira função de membro insere um elemento com valor val e retorna um iterador que designa o elemento recém-inserido. Você o usa para inserir um único elemento antes de um local designado por um iterador.

A segunda função de membro insere uma repetição de contagem elementos de valor val. Você o usa para inserir zero ou mais elementos contíguos, que são todas cópias do mesmo valor.

Se InIt for um tipo inteiro, a função de terceiro membro se comportará da mesma forma que insert(where, (size_type)first, (value_type)last). Caso contrário, insere a sequência [first, last). Use-o para inserir zero ou mais elementos contíguos copiados de outra sequência.

A função de quarto membro insere a sequência designada pelo direito. Você o usa para inserir uma sequência descrita por um enumerador.

Ao inserir um único elemento, o número de cópias de elementos é linear no número de elementos entre o ponto de inserção e a extremidade mais próxima da sequência. (Ao inserir um ou mais elementos em qualquer extremidade da sequência, nenhuma cópia de elemento ocorre.) Se InIt é um iterador de entrada, a função de terceiro membro efetivamente executa uma única inserção para cada elemento na sequência. Caso contrário, ao inserir N elementos, o número de cópias de elementos é linear em N mais o número de elementos entre o ponto de inserção e a extremidade mais próxima da sequência.

Exemplo

// cliext_deque_insert.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // insert a single value using iterator
    cliext::deque<wchar_t>::iterator it = c1.begin();
    System::Console::WriteLine("insert(begin()+1, L'x') = {0}",
        *c1.insert(++it, L'x'));
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // insert a repetition of values
    cliext::deque<wchar_t> c2;
    c2.insert(c2.begin(), 2, L'y');
    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // insert an iterator range
    it = c1.end();
    c2.insert(c2.end(), c1.begin(), --it);
    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // insert an enumeration
    c2.insert(c2.begin(),   // NOTE: cast is not needed
        (System::Collections::Generic::IEnumerable<wchar_t>^)%c1);
    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
insert(begin()+1, L'x') = x
a x b c
y y
y y a x b
a x b c y y a x b

deque::iterador (STL/CLR)

O tipo de iterador para a sequência controlada.

Sintaxe

typedef T1 iterator;

Comentários

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

Exemplo

// cliext_deque_iterator.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c"
    cliext::deque<wchar_t>::iterator it = c1.begin();
    for (; it != c1.end(); ++it)
        System::Console::Write("{0} ", *it);
    System::Console::WriteLine();

    // alter first element and redisplay
    it = c1.begin();
    *it = L'x';
    for (; it != c1.end(); ++it)
        System::Console::Write("{0} ", *it);
    System::Console::WriteLine();
    return (0);
    }
a b c
x b c

deque::operador!= (STL/CLR)

Deque não igual comparação.

Sintaxe

template<typename Value>
    bool operator!=(deque<Value>% left,
        deque<Value>% right);

Parâmetros

deixou
Recipiente esquerdo para comparar.

direito
Recipiente certo para comparar.

Comentários

A função de operador retorna !(left == right). Você o usa para testar se esquerdo não está ordenado da mesma forma que direita quando os dois deques são comparados elemento por elemento.

Exemplo

// cliext_deque_operator_ne.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // assign to a new container
    cliext::deque<wchar_t> c2;
    c2.push_back(L'a');
    c2.push_back(L'b');
    c2.push_back(L'd');

    // display contents " a b d"
    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    System::Console::WriteLine("[a b c] != [a b c] is {0}",
        c1 != c1);
    System::Console::WriteLine("[a b c] != [a b d] is {0}",
        c1 != c2);
    return (0);
    }
a b c
a b d
[a b c] != [a b c] is False
[a b c] != [a b d] is True

deque::operador (STL/CLR)

Acessa um elemento em uma posição especificada.

Sintaxe

reference operator[](size_type pos);

Parâmetros

pos
Posição do elemento a aceder.

Comentários

O operador membro retorna uma referência ao elemento na posição pos. Você o usa para acessar um elemento cuja posição você conhece.

Exemplo

// cliext_deque_operator_sub.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c" using subscripting
    for (int i = 0; i < c1.size(); ++i)
        System::Console::Write("{0} ", c1[i]);
    System::Console::WriteLine();

    // change an entry and redisplay
    c1[1] = L'x';
    for (int i = 0; i < c1.size(); ++i)
        System::Console::Write("{0} ", c1[i]);
    System::Console::WriteLine();
    return (0);
    }
a b c
a x c

deque::p op_back (STL/CLR)

Remove o último elemento.

Sintaxe

void pop_back();

Comentários

A função de membro remove o último elemento da sequência controlada, que deve estar não vazia. Você usá-lo para encurtar o deque por um elemento na parte de trás.

Exemplo

// cliext_deque_pop_back.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // pop an element and redisplay
    c1.pop_back();
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
a b

deque::p op_front (STL/CLR)

Remove o primeiro elemento.

Sintaxe

void pop_front();

Comentários

A função de membro remove o primeiro elemento da sequência controlada, que deve ser não-vazia. Você o usa para encurtar o deque por um elemento na frente.

Exemplo

// cliext_deque_pop_front.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // pop an element and redisplay
    c1.pop_front();
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
b c

deque::p ush_back (STL/CLR)

Adiciona um novo último elemento.

Sintaxe

void push_back(value_type val);

Comentários

A função membro insere um elemento com valor val no final da sequência controlada. Você o usa para acrescentar outro elemento ao deque.

Exemplo

// cliext_deque_push_back.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c

deque::p ush_front (STL/CLR)

Adiciona um novo primeiro elemento.

Sintaxe

void push_front(value_type val);

Comentários

A função de membro insere um elemento com valor val no início da sequência controlada. Você o usa para anexar outro elemento ao deque.

Exemplo

// cliext_deque_push_front.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_front(L'a');
    c1.push_front(L'b');
    c1.push_front(L'c');

    // display contents " c b a"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
c b a

deque::rbegin (STL/CLR)

Designa o início da sequência controlada invertida.

Sintaxe

reverse_iterator rbegin();

Comentários

A função de membro retorna um iterador reverso que designa o último elemento da sequência controlada, ou logo após o início de uma sequência vazia. Assim, designa o beginning da sequência inversa. Você o usa para obter um iterador que designa o início current da sequência controlada vista em ordem inversa, mas seu status pode mudar se o comprimento da sequência controlada mudar.

Exemplo

// cliext_deque_rbegin.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // inspect first two items in reversed sequence
    cliext::deque<wchar_t>::reverse_iterator rit = c1.rbegin();
    System::Console::WriteLine("*rbegin() = {0}", *rit);
    System::Console::WriteLine("*++rbegin() = {0}", *++rit);

    // alter first two items and reinspect
    *--rit = L'x';
    *++rit = L'y';
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
*rbegin() = c
*++rbegin() = b
a y x

deque::referência (STL/CLR)

O tipo de referência a um elemento.

Sintaxe

typedef value_type% reference;

Comentários

O tipo descreve uma referência a um elemento.

Exemplo

// cliext_deque_reference.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    cliext::deque<wchar_t>::iterator it = c1.begin();
    for (; it != c1.end(); ++it)
        {   // get a reference to an element
        cliext::deque<wchar_t>::reference ref = *it;
        System::Console::Write("{0} ", ref);
        }
    System::Console::WriteLine();

    // modify contents " a b c"
    for (it = c1.begin(); it != c1.end(); ++it)
        {   // get a reference to an element
        cliext::deque<wchar_t>::reference ref = *it;

        ref += (wchar_t)(L'A' - L'a');
        System::Console::Write("{0} ", ref);
        }
    System::Console::WriteLine();
    return (0);
    }
a b c
A B C

deque::rend (STL/CLR)

Designa o final da sequência controlada invertida.

Sintaxe

reverse_iterator rend();

Comentários

A função de membro retorna um iterador reverso que aponta logo além do início da sequência controlada. Assim, designa o end da sequência inversa. Você o usa para obter um iterador que designa a extremidade current da sequência controlada vista em ordem inversa, mas seu status pode mudar se o comprimento da sequência controlada mudar.

Exemplo

// cliext_deque_rend.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // inspect first two items
    cliext::deque<wchar_t>::reverse_iterator rit = c1.rend();
    --rit;
    System::Console::WriteLine("*-- --rend() = {0}", *--rit);
    System::Console::WriteLine("*--rend() = {0}", *++rit);

    // alter first two items and reinspect
    *--rit = L'x';
    *++rit = L'y';
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
*-- --rend() = b
*--rend() = a
y x c

deque::redimensionamento (STL/CLR)

Altera o número de elementos.

Sintaxe

void resize(size_type new_size);
void resize(size_type new_size, value_type val);

Parâmetros

new_size
Novo tamanho da sequência controlada.

val
Valor do elemento de preenchimento.

Comentários

As funções de membro garantem que deque::size (STL/CLR)() doravante retorne new_size. Se tiver de tornar a sequência controlada mais longa, a função de primeiro membro acrescenta elementos com valor value_type(), enquanto a função de segundo membro acrescenta elementos com valor val. Para tornar a sequência controlada mais curta, ambas as funções de membro efetivamente apagam o último elemento deque::size (STL/CLR)() -new_size vezes. Use-o para garantir que a sequência controlada tenha tamanho new_size, cortando ou preenchendo a sequência controlada atual.

Exemplo

// cliext_deque_resize.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
// construct an empty container and pad with default values
    cliext::deque<wchar_t> c1;
    System::Console::WriteLine("size() = {0}", c1.size());
    c1.resize(4);
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", (int)elem);
    System::Console::WriteLine();

    // resize to empty
    c1.resize(0);
    System::Console::WriteLine("size() = {0}", c1.size());

    // resize and pad
    c1.resize(5, L'x');
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
size() = 0
0 0 0 0
size() = 0
x x x x x

deque::reverse_iterator (STL/CLR)

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

Sintaxe

typedef T3 reverse_iterator;

Comentários

O tipo descreve um objeto de tipo não especificado T3 que pode servir como um iterador reverso para a sequência controlada.

Exemplo

// cliext_deque_reverse_iterator.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c" reversed
    cliext::deque<wchar_t>::reverse_iterator rit = c1.rbegin();
    for (; rit != c1.rend(); ++rit)
        System::Console::Write("{0} ", *rit);
    System::Console::WriteLine();

    // alter first element and redisplay
    rit = c1.rbegin();
    *rit = L'x';
    for (; rit != c1.rend(); ++rit)
        System::Console::Write("{0} ", *rit);
    System::Console::WriteLine();
    return (0);
    }
c b a
x b a

deque::tamanho (STL/CLR)

Conta o número de elementos.

Sintaxe

size_type size();

Comentários

A função de membro retorna o comprimento da sequência controlada. Você o usa para determinar o número de elementos atualmente na sequência controlada. Se tudo o que lhe interessa é se a sequência tem tamanho diferente de zero, consulte deque::empty (STL/CLR)().

Exemplo

// cliext_deque_size.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    System::Console::WriteLine("size() = {0} starting with 3", c1.size());

    // clear the container and reinspect
    c1.clear();
    System::Console::WriteLine("size() = {0} after clearing", c1.size());

    // add elements and clear again
    c1.push_back(L'a');
    c1.push_back(L'b');
    System::Console::WriteLine("size() = {0} after adding 2", c1.size());
    return (0);
    }
a b c
size() = 3 starting with 3
size() = 0 after clearing
size() = 2 after adding 2

deque::size_type (STL/CLR)

O tipo de distância assinada entre dois elementos.

Sintaxe

typedef int size_type;

Comentários

O tipo descreve uma contagem de elementos não negativos.

Exemplo

// cliext_deque_size_type.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // compute positive difference
    cliext::deque<wchar_t>::size_type diff = c1.end() - c1.begin();
    System::Console::WriteLine("end()-begin() = {0}", diff);
    return (0);
    }
a b c
end()-begin() = 3

deque::swap (STL/CLR)

Troca o conteúdo de dois contêineres.

Sintaxe

void swap(deque<Value>% right);

Parâmetros

direito
Recipiente com o qual trocar conteúdo.

Comentários

A função de membro troca as sequências controladas entre *this e direito. Fá-lo em tempo constante e não abre exceções. Você o usa como uma maneira rápida de trocar o conteúdo de dois recipientes.

Exemplo

// cliext_deque_swap.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display initial contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // construct another container with repetition of values
    cliext::deque<wchar_t> c2(5, L'x');
    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // swap and redisplay
    c1.swap(c2);
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
x x x x x
x x x x x
a b c

deque::to_array (STL/CLR)

Copia a sequência controlada para uma nova matriz.

Sintaxe

cli::array<Value>^ to_array();

Comentários

A função de membro retorna uma matriz que contém a sequência controlada. Você o usa para obter uma cópia da sequência controlada em forma de matriz.

Exemplo

// cliext_deque_to_array.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // copy the container and modify it
    cli::array<wchar_t>^ a1 = c1.to_array();

    c1.push_back(L'd');
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // display the earlier array copy
    for each (wchar_t elem in a1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c d
a b c

deque::value_type (STL/CLR)

O tipo de um elemento.

Sintaxe

typedef Value value_type;

Comentários

O tipo é um sinônimo para o parâmetro de modelo Value.

Exemplo

// cliext_deque_value_type.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c" using value_type
    for (cliext::deque<wchar_t>::iterator it = c1.begin();
        it != c1.end(); ++it)
        {   // store element in value_type object
        cliext::deque<wchar_t>::value_type val = *it;

        System::Console::Write("{0} ", val);
        }
    System::Console::WriteLine();
    return (0);
    }
a b c

operator< (deque) (STL/CLR)

Deque menos do que comparação.

Sintaxe

template<typename Value>
    bool operator<(deque<Value>% left,
        deque<Value>% right);

Parâmetros

deixou
Recipiente esquerdo para comparar.

direito
Recipiente certo para comparar.

Comentários

A função do operador retorna true se, para a posição mais baixa i para a qual !(right[i] < left[i]) também é verdade que left[i] < right[i]. Caso contrário, ele retorna left->size() < right->size() Você usá-lo para testar se esquerdo é ordenado antes direita quando os dois deques são comparados elemento por elemento.

Exemplo

// cliext_deque_operator_lt.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // assign to a new container
    cliext::deque<wchar_t> c2;
    c2.push_back(L'a');
    c2.push_back(L'b');
    c2.push_back(L'd');

    // display contents " a b d"
    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    System::Console::WriteLine("[a b c] < [a b c] is {0}",
        c1 < c1);
    System::Console::WriteLine("[a b c] < [a b d] is {0}",
        c1 < c2);
    return (0);
    }
a b c
a b d
[a b c] < [a b c] is False
[a b c] < [a b d] is True

operator<= (deque) (STL/CLR)

Deque menor ou igual comparação.

Sintaxe

template<typename Value>
    bool operator<=(deque<Value>% left,
        deque<Value>% right);

Parâmetros

deixou
Recipiente esquerdo para comparar.

direito
Recipiente certo para comparar.

Comentários

A função de operador retorna !(right < left). Você o usa para testar se esquerdo não é ordenado após direito quando os dois deques são comparados elemento por elemento.

Exemplo

// cliext_deque_operator_le.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // assign to a new container
    cliext::deque<wchar_t> c2;
    c2.push_back(L'a');
    c2.push_back(L'b');
    c2.push_back(L'd');

    // display contents " a b d"
    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    System::Console::WriteLine("[a b c] <= [a b c] is {0}",
        c1 <= c1);
    System::Console::WriteLine("[a b d] <= [a b c] is {0}",
        c2 <= c1);
    return (0);
    }
a b c
a b d
[a b c] <= [a b c] is True
[a b d] <= [a b c] is False

operador= (deque) (STL/CLR)

Substitui a sequência controlada.

Sintaxe

deque<Value>% operator=(deque<Value>% right);

Parâmetros

direito
Recipiente para copiar.

Comentários

O operador membro copia direita para o objeto e, em seguida, retorna *this. Use-o para substituir a sequência controlada por uma cópia da sequência controlada no direito.

Exemplo

// cliext_deque_operator_as.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // assign to a new container
    cliext::deque<wchar_t> c2;
    c2 = c1;
    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();
    return (0);
    }
a b c
a b c

operador== (deque) (STL/CLR)

Deque igual comparação.

Sintaxe

template<typename Value>
    bool operator==(deque<Value>% left,
        deque<Value>% right);

Parâmetros

deixou
Recipiente esquerdo para comparar.

direito
Recipiente certo para comparar.

Comentários

A função de operador retorna true somente se as sequências controladas por esquerda e direita tiverem o mesmo comprimento e, para cada posição i, left[i] ==right[i]. Você o usa para testar se esquerdo é ordenado da mesma forma que direita quando os dois deques são comparados elemento por elemento.

Exemplo

// cliext_deque_operator_eq.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // assign to a new container
    cliext::deque<wchar_t> c2;
    c2.push_back(L'a');
    c2.push_back(L'b');
    c2.push_back(L'd');

    // display contents " a b d"
    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    System::Console::WriteLine("[a b c] == [a b c] is {0}",
        c1 == c1);
    System::Console::WriteLine("[a b c] == [a b d] is {0}",
        c1 == c2);
    return (0);
    }
a b c
a b d
[a b c] == [a b c] is True
[a b c] == [a b d] is False

operator> (deque) (STL/CLR)

Deque maior do que comparação.

Sintaxe

template<typename Value>
    bool operator>(deque<Value>% left,
        deque<Value>% right);

Parâmetros

deixou
Recipiente esquerdo para comparar.

direito
Recipiente certo para comparar.

Comentários

A função de operador retorna right<left. Você o usa para testar se esquerdo é ordenado após direito quando os dois deques são comparados elemento por elemento.

Exemplo

// cliext_deque_operator_gt.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // assign to a new container
    cliext::deque<wchar_t> c2;
    c2.push_back(L'a');
    c2.push_back(L'b');
    c2.push_back(L'd');

    // display contents " a b d"
    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    System::Console::WriteLine("[a b c] > [a b c] is {0}",
        c1 > c1);
    System::Console::WriteLine("[a b d] > [a b c] is {0}",
        c2 > c1);
    return (0);
    }
a b c
a b d
[a b c] > [a b c] is False
[a b d] > [a b c] is True

operator>= (deque) (STL/CLR)

Deque maior ou igual comparação.

Sintaxe

template<typename Value>
    bool operator>=(deque<Value>% left,
        deque<Value>% right);

Parâmetros

deixou
Recipiente esquerdo para comparar.

direito
Recipiente certo para comparar.

Comentários

A função de operador retorna !(left<right). Você o usa para testar se esquerdo não é ordenado antes direita quando os dois deques são comparados elemento por elemento.

Exemplo

// cliext_deque_operator_ge.cpp
// compile with: /clr
#include <cliext/deque>

int main()
    {
    cliext::deque<wchar_t> c1;
    c1.push_back(L'a');
    c1.push_back(L'b');
    c1.push_back(L'c');

    // display contents " a b c"
    for each (wchar_t elem in c1)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    // assign to a new container
    cliext::deque<wchar_t> c2;
    c2.push_back(L'a');
    c2.push_back(L'b');
    c2.push_back(L'd');

    // display contents " a b d"
    for each (wchar_t elem in c2)
        System::Console::Write("{0} ", elem);
    System::Console::WriteLine();

    System::Console::WriteLine("[a b c] >= [a b c] is {0}",
        c1 >= c1);
    System::Console::WriteLine("[a b c] >= [a b d] is {0}",
        c1 >= c2);
    return (0);
    }
a b c
a b d
[a b c] >= [a b c] is True
[a b c] >= [a b d] is False