estruturas de dados com c++ e stl

Post on 16-Apr-2017

3.670 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ESTRUTURAS DE DADOS COM C++ E STLCURSO DE MARATONA DE PROGRAMAÇÃOICT-Unifesp

2

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

3

POR QUE C++? O objetivo é maratona de programação. A maratona é democrática, você pode programar até em Java! Com a palavra ViniGodoy:

4

NÃO SABE C++ ? 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!

5

DECLARE O ESPAÇO DE NOMES PADRÃO

6

VETOR No C fazíamos:

7

VETOR No C++ utilizando STL:

Não esquecer de incluir: #include <vector>

8

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

9

VETOR 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();

10

VETOR Pergunta: remove o último elemento ?

11

VETOR Pergunta: remove o último elemento ?

12

VETOR Corrigindo...

O begin() aponta para o primeiro elemento e o end() não aponta para o último elemento, entendeu? Nem eu!

13

VETOR Utilizando C/C++:

14

STRING String do C++ também é legal, você pode passar o conteúdo no

construtor:

15

STRING Mas eu tenho uma string do C! Ok ...

16

STRING Mas eu tenho uma string do C, quero passar para C++ e quero imprimir a

string do C++ com o saudoso printf! Ok ......

17

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

18

STRING Copiando uma string (saudades da strcpy ??) :

19

STRING Desafio: o que imprimirá cada um dos códigos?

20

LIST #include <list>

21

LIST Acessando os elementos:

22

STACK Lembra da pilha que você teve que implementar em estrutura de dados? Sem sofrimento, basta você incluir: #include <stack>

23

STACK A remoção é feita com a função pop():

24

STACK Verificar se a pilha está vazia:

25

QUEUE Lembra da fila do banco? Inclua: #include <queue>

26

QUEUE Utilize a função back() para saber quem é o último da fila:

27

MAP Quer associar elementos por chave/valor? #include <map>

28

MAP Verificando se uma chave existe:

29

MAP Não temos a chave “blabla”, o que será impresso?

30

MAP Percorrendo o map...

A impressão ocorre na ordem em que os elementos foram inseridos?

31

DEQUE Permite inserir elementos no início e no final: #include <queue> ou #include <deque>

32

DEQUE Percorrendo:

33

DEQUE E se fosse uma fila, funcionaria o código abaixo?

34

DEQUE E se fosse uma fila, funcionaria o código abaixo?

35

SET O set não permite elementos repetidos. Basta incluir: #include <set> Os elementos são mantidos em ordem crescente.

36

MULTISET Mas eu preciso de um set com elementos repetidos em ordem crescente. Seus problemas acabaram: multiset

37

CLASSES Ouvi dizer que em C++ você programa com classe... Struct é quase igual a uma classe... O código abaixo compila?

38

CLASSES Agora sim código abaixo compila! Os membros por default de uma classe são privados, então colocamos o

public:

39

CLASSES O código abaixo compila! Os membros por default de uma struct são públicos.

40

ALGORITHM Alguns algoritmos estão implementados para você utilizar. #include <algorithm> Ordenar os elementos em ordem crescente: sort()

41

ALGORITHM Imprimir todas as permutações: next_permutation()

42

ALGORITHM Busca binária: binary_search()

43

DÚVIDAS?

44

REFERÊNCIAS 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

top related