+ Curso de C/C++ Aula 10 Instrutor: Luiz Felipe Sotero Material por: Allan Lima - ppt carregar
+ Curso de C/C++ Aula 10 Instrutor: Luiz Felipe Sotero Material por: Allan Lima
PublicouIuri Espada Alterado mais de 3 anos atrás
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/
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