Curso completo de linguagem C++
Gameprog - Escola de programação de jogos digitais
Contato: gameprog.br@gmail.com
track27.html

index << >>

27. <deque>

27.1 Visão geral A estrutura deque é implementada pela classe genérica deque. Essa estrutura é conhecida como fila dupla porque permite movimentação de entrada e saída de elementos em suas extremidades.
// deque_tst.cpp // Esse programa exemplica o uso de filas com dupla extremidade #include <iostream> #include <string> #include <deque> using namespace std; deque<string> filaDupla; string cidade[10]; void mostrar_filaDupla() { for(int ncx = 0; ncx < filaDupla.size(); ++ncx ) cout << filaDupla[ncx] << "--"; cout << endl << endl; } // fim da função: mostrar_filaDupla() int main() { system("color f0"); system("title deque_tst.cpp"); cout << endl; // Nosssa lista de cidades preferidas cidade[1] = "(1)SP"; cidade[2] = "(2)Diadema"; cidade[3] = "(3)SBC"; cidade[4] = "(4)SA"; cidade[5] = "(5)SC"; cidade[6] = "(6)Maua"; // Vamos inserir dados na frente da fila filaDupla.push_front( cidade[4] ); filaDupla.push_front( cidade[3] ); filaDupla.push_front( cidade[2] ); // Vamos inserir dados no fundo da fila filaDupla.push_back(cidade[5] ); filaDupla.push_back(cidade[6] ); cout << "\tFila original: " << endl; mostrar_filaDupla(); cout << "\tFila com adicao de dados nos extremos" << endl; filaDupla.push_front ( cidade[1] ); filaDupla.push_back ( "(?) Sorocaba" ); mostrar_filaDupla(); // Vamos deletar alguns itens... cout << "\tExtremos deletados com .pop_front() e pop.back():\n"; filaDupla.pop_front(); filaDupla.pop_back(); mostrar_filaDupla(); cout << "\tAcessando e modificando elementos pelo operator[]" << endl; filaDupla[03] = "(0?) hackeado!"; mostrar_filaDupla(); cout << endl; system("pause"); } // endfunction: main()
Declarando uma fila dupla deque<string> filaDupla; Com a sintaxe exemplificada acima você declara uma fila dupla. Adicionando e excluindo elementos na fila dupla .push_front(elemento) - Este método coloca um elemento na frente da fila .push_back(elemento) - Este método coloca um elemento no final da fila .pop_front(elemento) - Este método deleta o elemento da frente da fila .pop_back(elemento) - Este método deleta o elemento do final da fila // Vamos inserir dados na frente da fila filaDupla.push_front( cidade[4] ); filaDupla.push_front( cidade[3] ); // Vamos inserir dados no fundo da fila filaDupla.push_back(cidade[5] ); filaDupla.push_back( "Sorocaba" ); // Vamos deletar alguns itens... cout << "\tExtremos deletados com .pop_front() e pop.back():\n"; filaDupla.pop_front(); filaDupla.pop_back(); Acessando os elementos na fila dupla .front() - Este método retorna o primeiro elemento da fila .back() - Este método retorna o último elemento fila cout << filaDupla.front() << endl; cout << filaDupla.back() << endl; Você pode usar a sintaxe de array para acessar elementos da fila usando normalmente os colchetes com a posição do elemento: filaDupla[03] = "(0?) hackeado!"; void mostrar_filaDupla() { for(int ncx = 0; ncx < filaDupla.size(); ++ncx ) cout << filaDupla[ncx] << "--"; cout << endl << endl; } // fim da funcao: mostrar_filaDupla()
index << >>


Produzido por Gameprog: Jair Pereira - Fev/2006 - Junho/2013 © gameprog.br@gmail.com http://www.gameprog.com.br