Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Estruturas de dados com C++ e STL

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 44 Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Andere mochten auch (20)

Anzeige

Ähnlich wie Estruturas de dados com C++ e STL (20)

Weitere von Marcos Castro (20)

Anzeige

Aktuellste (20)

Estruturas de dados com C++ e STL

  1. 1. CURSO DE MARATONA DE PROGRAMAÇÃO ICT-Unifesp
  2. 2.  Iremos utilizar a STL (biblioteca padrão do C++).  Por que?  STL possui várias estruturas implementadas.  Estudos dizem que você irá escrever menos e poderá obter mais !!  Lembre-se:  A STL ajuda, mas não faz milagres!  Estude os mais diversos algoritmos e técnicas de programação.  Use a STL de forma adequada.  Exemplo: uso vetor (vector) ou lista (list) ?  Resolva (muitos=2)^10 problemas. 2
  3. 3.  O objetivo é maratona de programação.  A maratona é democrática, você pode programar até em Java!  Com a palavra ViniGodoy: 3
  4. 4.  Relax, não é preciso dominar a linguagem...  Só precisamos saber um pouquinho...  Você pode misturar C e C++.  Ou pode fazer o código totalmente em C e salvar como .cpp :D  Seu foco maior será nos algoritmos e técnicas para resolver os problemas.  C++ e STL te ajudarão a não ter maiores dores de cabeça! 4
  5. 5. 5
  6. 6.  No C fazíamos: 6
  7. 7.  No C++ utilizando STL:  Não esquecer de incluir: #include <vector> 7
  8. 8.  Ok, escrevemos menos quando fizemos em C, mas você pode passar para o construtor a quantidade de elementos, será inicializado tudo com 0 e aí você só atribui os valores: 8
  9. 9.  O vector possui várias operações.  Vimos a função push_back que insere elementos, mas existem outras...  A função erase apaga elementos:  A função clear que remove todos os elementos: v.clear(); 9
  10. 10.  Pergunta: remove o último elemento ? 10
  11. 11.  Pergunta: remove o último elemento ? 11
  12. 12.  Corrigindo...  O begin() aponta para o primeiro elemento e o end() não aponta para o último elemento, entendeu? Nem eu! 12
  13. 13.  Utilizando C/C++: 13
  14. 14.  String do C++ também é legal, você pode passar o conteúdo no construtor: 14
  15. 15.  Mas eu tenho uma string do C! Ok ... 15
  16. 16.  Mas eu tenho uma string do C, quero passar para C++ e quero imprimir a string do C++ com o saudoso printf! Ok ...... 16
  17. 17.  As funções mantêm um certo padrão.  Lembra das funções size() e erase() ?  Elas existem para string! O que é impresso na última linha? 17
  18. 18.  Copiando uma string (saudades da strcpy ??) : 18
  19. 19.  Desafio: o que imprimirá cada um dos códigos? 19
  20. 20.  #include <list> 20
  21. 21.  Acessando os elementos: 21
  22. 22.  Lembra da pilha que você teve que implementar em estrutura de dados?  Sem sofrimento, basta você incluir: #include <stack> 22
  23. 23.  A remoção é feita com a função pop(): 23
  24. 24.  Verificar se a pilha está vazia: 24
  25. 25.  Lembra da fila do banco? Inclua: #include <queue> 25
  26. 26.  Utilize a função back() para saber quem é o último da fila: 26
  27. 27.  Quer associar elementos por chave/valor? #include <map> 27
  28. 28.  Verificando se uma chave existe: 28
  29. 29.  Não temos a chave “blabla”, o que será impresso? 29
  30. 30.  Percorrendo o map...  A impressão ocorre na ordem em que os elementos foram inseridos? 30
  31. 31.  Permite inserir elementos no início e no final:  #include <queue> ou #include <deque> 31
  32. 32.  Percorrendo: 32
  33. 33.  E se fosse uma fila, funcionaria o código abaixo? 33
  34. 34.  E se fosse uma fila, funcionaria o código abaixo? 34
  35. 35.  O set não permite elementos repetidos. Basta incluir: #include <set>  Os elementos são mantidos em ordem crescente. 35
  36. 36.  Mas eu preciso de um set com elementos repetidos em ordem crescente.  Seus problemas acabaram: multiset 36
  37. 37.  Ouvi dizer que em C++ você programa com classe...  Struct é quase igual a uma classe... O código abaixo compila? 37
  38. 38.  Agora sim código abaixo compila!  Os membros por default de uma classe são privados, então colocamos o public: 38
  39. 39.  O código abaixo compila!  Os membros por default de uma struct são públicos. 39
  40. 40.  Alguns algoritmos estão implementados para você utilizar.  #include <algorithm>  Ordenar os elementos em ordem crescente: sort() 40
  41. 41.  Imprimir todas as permutações: next_permutation() 41
  42. 42.  Busca binária: binary_search() 42
  43. 43. 43
  44. 44.  Tem quase tudo aqui: http://www.cplusplus.com/reference  Curso de C++ (~ 100 vídeo-aulas): https://goo.gl/BFbNOL  Maratona de Programação com STL: http://goo.gl/eyhOzq  Contato: mcastrosouza@live.com 44

×