A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

+ Curso de C/C++ Aula 10 Instrutor: Luiz Felipe Sotero Material por: Allan Lima

Apresentações semelhantes


Apresentação em tema: "+ Curso de C/C++ Aula 10 Instrutor: Luiz Felipe Sotero Material por: Allan Lima"— Transcrição da apresentação:

1 + Curso de C/C++ Aula 10 Instrutor: Luiz Felipe Sotero Material por: Allan Lima http://allanlima.wordpress.com/

2 Você pode: copiar, distribuir, exibir e executar a obra criar obras derivadas fazer uso comercial da obra Sob as seguintes condições: Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante. Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta. Para cada novo uso ou distribuição, você deve deixar claro para outros os termos da licença desta obra. Qualquer uma destas condições podem ser renunciadas, desde que Você obtenha permissão do autor. Veja aqui a licença completa

3 + Roteiro Visão geral da STL Algumas classes da STL vector basic_string queue stack set const_iterator map

4 + Standard Template Library É a biblioteca padrão de C++ Padronizada pelo ANSI em 1997 Possui basicamente classes de armazenamento (containers), algoritmos e iterators É uma biblioteca genérica, ou seja a maioria dos seus componentes são templates

5 + Por que utilizar STL Podemos utilizar os componentes de STL para diminuir o nosso trabalho Por exemplo: Não precisamos criar uma classe pilha, porque ela já existe na STL (stack) Não reinvente a roda!!!

6 + Standard Template Library Convenções: Quando incluímos um header não precisamos utilizar o ‘.h’ no seu final: #include As bibliotecas antigas de c agora possuem um ‘c’ a mais no seu nome e também não precisamos mais do ‘.h’ no final do arquivo #include Mas as formas antigas de incluir arquivos também funcionam

7 + Organização da STL Containers Array unidimensional do tipo T Lista duplamente ligada do tipo T Lista ligada ‘double-ended’ do tipo T Lista ligada do tipo T Pilha do tipo T Array associativo do tipo T (red-black tree) Conjunto do tipo T Array de booleanos

8 + Organização da STL General Utilities Operadores Funções Funções para manipulação de memória Funções de C para manipulação de data e hora Iterators Definição e suporte para Iterators Algorithms Algoritmos gerais bsearch() e qsort()

9 + Organização da STL Diagnostics Definição da classe exception Exceções da biblioteca padrão Diagnóstico de Erros Tratamento de erro com as funções de C

10 + Organização da STL Strings string do tipo T Classificação de caracteres Classificação de wide-caracters Funções de C para manipulação de strings Funções de C para classificação de wide-caracters Mais funções de C para manipulação de strings

11 + Organização da STL Input/Output Declara ç ões forward de facilidades de E/S. Objetos e opera ç ões padrões de E/S. Classes bases de E/S. Stream buffers. Templates de stream de entrada. Templates de stream de sa í da. Manipuladores. Stream para E/S com strings.

12 + Organização da STL Input/Output Classifica ç ão de caracteres e fun ç ões Streams para E/S com arquivos printf() e scanf() printf() e scanf() para wide characters Language Suport Representa diferen ç as culturais Fun ç ões de C para representar diferen ç as culturais

13 + Organização da STL Language Suport Limites numéricos Macros de C com os limites numéricos Macros de C com os limites de ponto flutuante Gerenciamento de memória dinâmico Suporte para identificação de tipos em tempo de execução Suporte para o tratamento de exceções Suporte para a biblioteca da linguagem C Criação de funções com lista de argumentos variável Funções de C para manipulação de Pilhas

14 + Organização da STL Language Suport Finalização do programa Relógio (Clock) do sistema Manipulação de sinais em C Numéricos Números complexos e seus operadores Vetores numéricos e operações Operações numéricas generalizadas Funções matemáticas de C Geração de números aleatórios em C

15 + A classe vector É um “array dinâmico”, ou seja, o seu tamanho não é fixo! Seus elementos podem ser acessados através do operador [ ] Sua performance varia de acordo com a forma de utilização Exemplo: exemploVector.cpp

16 + strings O C++ não possui uma classe chamada string Mas sim a classe basic_string que é um template e pode representar uma string de qualquer tipo de dado. Mas como podemos declarar uma string? O namespace std possui a seguinte linha: typedef basic_string string; Exemplo: exemploString.cpp

17 + A classe queue Implementa a disciplina de um fila Política FIFO: first-in-first-out Exemplo: exemploQueue.cpp

18 + A classe stack Implementa a disciplina de uma pilha Política LIFO: last-in-first-out Pode ser implementada sobre diversas estruturas de dados: vector list deque O valor default é deque Exemplo: exemploStack.cpp

19 + Classe set Representa a idéia de um conjunto Por isso, não possui elementos duplicados Os elementos são inseridos de forma ordenada Exemplo: exemploSet.cpp

20 + As classes const_iterator É um tipo utilizado para percorrer os containers da STL Objetos deste tipo são ponteiros Cada container possui uma classe com este nome; Para percorrer um container podemos utilizar os métodos: begin() - Ponteiro para o início do container end() - Ponteiro para o fim do container Exemplo: exemploIterator.cpp

21 + A classe map Associa uma chave a um valor Chaves duplicadas são ignoradas Elementos podem ser inseridos ou modificados através do operador [ ] Muito rápida para operações de busca Exemplo: exemploMap.cpp

22 + Exercícios 1) Crie uma função isPalindromo() que recebe um vetor como parâmetro. Ela deve retornar true se ele é um palíndromo e false caso contrário. Exemplo: Um vetor contendo 1, 2, 3, 2, 1 é um palíndromo. E um vetor contendo 1, 4, 3, 2, 1 não é um palíndromo. 2)Crie uma mapa que associa o nome de uma pessoa a um objeto do tipo Pessoa. Utilize classe map.

23 + Referências Stroustrup, Bjarne. The C++ Programming Language, Special Edition Eckel, Bruce. Thinking in C++, 2nd ed. Volume 1 Deitel & Deitel, C++ How to program, third edition Standard Template Library Programmer's Guide http://www.sgi.com/tech/stl/ Slides de Gustavo (ghpc@cin.ufpe.br) do Versão curso de C/C++ghpc@cin.ufpe.br

24 + Agradecimentos Allan Lima, Breno do Vale e Francisco Magalhães Pelo material cedido para o curso


Carregar ppt "+ Curso de C/C++ Aula 10 Instrutor: Luiz Felipe Sotero Material por: Allan Lima"

Apresentações semelhantes


Anúncios Google