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

Slides:



Advertisements
Apresentações semelhantes
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 19 Criado por Frederick H. Colclough, Colorado Technical University Standard Template.
Advertisements

ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva /msn: Página:
Estruturas de Dados Marcio Gonçalves.
Centro Integrado de Tecnologia da Informação
Algoritmos de manipulação de estruturas elementares de dados
Uma Introdução.
Programação para Engenharia I
ESTRUTURAS DO TIPO FILA
Rafael Pinto Frederico Corrêa
Walfredo Cirne walfredo.dsc.ufpb.br
Programação II Estruturas, uniões e enumerações
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Universidade Federal do Espírito Santo
Curso de Programação em C++
Centro Integrado de Tecnologia da Informação
Curso de C/C++ Avançado
Centro Integrado de Tecnologia da Informação
Curso de C/C++ Avançado
Curso de C/C++ Avançado
Centro Integrado de Tecnologia da Informação
Curso de C/C++ Avançado
Centro Integrado de Tecnologia da Informação
Curso de C/C++ Avançado
Ponteiros em Linguagem C
Geração Dinâmica de Páginas com JSP Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação.
Aula 12 Biblioteca padrão do C++ O que é? Composição
Revisão da Linguagem C.
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
INTRODUÇÃ A COMPUTAÇÃO ENG. CIVIL
Aula prática 13 Orientação a Objetos – C++ Parte 1
+ Java Web XIV Jornada de Cursos. Você pode: copiar, distribuir, exibir e executar a obra criar obras derivadas fazer uso comercial da obra Sob as seguintes.
Linguagens de Programação – DEL-Poli/UFRJ Prof. Miguel Campista Linguagens de Programação Prof. Miguel Elias Mitre Campista
CADEIA DE CARACTERES (Strings)
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
+ Curso de C/C++ Aula 6 Instrutor: Luiz Felipe Sotero Material por: Allan Lima
+ Curso de C/C++ Aula 7 Instrutor: Luiz Felipe Sotero Material por: Allan Lima
+ Curso de C/C++ Aula 8 Instrutor: Luiz Felipe Sotero Material por: Allan Lima
Curso de C/C++ Aula 9 Instrutor: Luiz Felipe Sotero
Curso de C/C++ Aula 2 Instrutor: Luiz Felipe Sotero
Listas, Filas e Pilhas Katia Guimarães.
Aula 3 Listas, pilhas, filas.
Programação em C++ Compiladores
GP - Generic Programming Thiago Robert Felipe Pompeo.
Pilhas Profa. Nádia Félix.
Módulo I Capítulo 5: Vetores
3. Introdução à Linguagem C
Aula prática 7 Strings Monitoria de Introdução à Programação
Estruturas de Dados Aula 17: Estruturas Genéricas
Algoritmos e Estrutura de Dados I Jean Carlo Mendes
Linguagens de Programação
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Linguagem de Programação II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Módulo 9 Strings , Coleções e I/O
Aula Prática 11 Operações com Arquivos Monitoria
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Sistemas Operativos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra 2006/2007 Breve Introdução à Linguagem C.
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Introdução ao C++ para programadores OO Instrutores: Francisco Carvalho, João Paulo do Monte, Renato Viana Ferreira {fcfl, jpsml,
© Copyright 2007 Algoritmos e Estruturas de Dados - Todos os direitos reservados Estruturas de Dados Dinâmicas IF672 - Algoritmos e Estruturas de Dados.
Estruturas de Dados Murilo Salgado Razoli.
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista POO para Redes de Computadores.
Linguagem de Programação
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
Estrutura de Dados Prof. André Cypriano M. Costa
INE5408 Estruturas de Dados Gerência de Arquivos -Propriedades de Árvores k-D.
Strings e Arrays Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB  Centro de Informática,
Transcrição da apresentação:

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

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

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

+ 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

+ 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!!!

+ 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

+ 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

+ 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()

+ 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

+ 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

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

+ 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

+ 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

+ 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

+ 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

+ 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

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

+ 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

+ 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

+ 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

+ 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

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

+ 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 Slides de Gustavo do Versão curso de

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