Laboratório de programação II
|
|
|
- Maria Laura Vasques Teixeira
- 8 Há anos
- Visualizações:
Transcrição
1 Laboratório de programação II Standard Template Library (STL) Edson Moreno
2 Standard Template Library Biblioteca padronizada de funções Oferece um conjunto de classes de Uso genérico Contêineres (estruturas de dados, como pilhas, listas e filas) Iteradores (objetos que percorrem elementos de um conjunto) Algoritmos básicos (principalmente os destinados a busca e classificação). Principais vantagens Armazenam qualquer tipo de dado Simplificação do trabalho com estruturas de dados Código baseado em ponteiros é complexo Possuem um grande conjunto de algoritmos tal como Reverse, swap, sort
3 Características de STL Não usa polimorfismo em função do desempenho Usa extensivamente os templates Construída basicamente sobre três conceitos Containers Interadores Código genérico
4 Componentes da STL Containers Dividido em três tipos Containers de sequência Containers associativos Containers adaptativos Interadores
5 STL Containers Utilizado para organizar um conjunto de objetos de mesmos tipo Dividido em três tipos Containers de sequência Permite o armazenamento de diferentes tipos de dados e o acesso sequencial Containers associativos Exploram o conceito de pares chaves e valores, onde cada chave aparece uma única vez Containers adaptativos Adaptam classes previamente definidas nos outros tipos de containers
6 Container de sequência Vetor genérico que armazena coleção de objetos do mesmo tipo Vector Equivalente a um vetor Vector tem operações que permitem o seu crescimento e redução de forma dinâmica Tipos de containers de sequencia Vector List deque
7 Tipos de container de sequência Vector container Característica Insere objeto sempre no final d lista Equivalente a um vetor Vector tem operações que permitem o seu crescimento e redução de forma dinâmica Permite acesso a os seus elemento utilizando índices Índice varia de 0 a n-1, onde n é o tamanho do vetor O acesso pode ser aleatório Para usá-lo #include <vector>
8 Tipos de container de sequência Vector container Exemplos de uso de vector container Permite o acesso direto via uso de índice #include <vector> vector<int> scores (100); vector<passenger>passengerlist(20); //100 integer scores //list of 20 passengers scores[5]=15;
9 Tipos de container de sequência List container Característica Permite incluir e remover itens em qualquer posição na sequencia Armazena os elementos por posição Cada item na lista tem Valor e endereço de memória (ponteiro) Utilizado para indicar o próximo item na sequência Para acessar um dado na lista Deve-se iniciar pela primeira posição Deve-se seguir de elemento a elemento até localizar o item desejado Não é uma estrutura de acesso direto, como o vector
10 Tipos de container de sequência List container Exemplos de uso de list container #include <list> using namespace std; list<int> first; // cria lista vazia de inteiros list<int> second (4,100); // cria lista com quatro inteiros com valor 100
11 Container associativos Característica de funcionamento Funciona com o conceito de chaves Estão sempre ordenados Tipos de containers associativos Set: Armazena um conjunto de chaves sem repetição Multiset: Armazena um conjunto de chaves permitindo repetições Map: Armazena um conjunto de pares {chaves, valor} sem repetição Multimap: Armazena um conjunto de pares {chaves, valor} permitindo repetições
12 Container adaptativos Característica de funcionamento Criados a partir da adaptação dos containers de sequencia Utilizam com base o vector, list ou deque Tipos de containers adaptativo stack: Funciona como uma pilha (LIFO) queue: Funciona como uma fila (FIFO) Priority_queue: Funciona com uma fila ordenada, sendo o maior valor o primeiro a sair
13 Métodos comuns aos containers Operadores =, <, >, <=, >=, ==,!= Construtor padrão: possuem conjunto de construtores válidos Construtor de cópia: cria container novo, a partir de um existente Destrutor: destrutor padrão Empty: retorna se o container está vazio Max_size: retorna o número máximo de objetos no container Size: retorna o número de elementos usados Swap: troca todos elementos do container
14 Métodos específicos dos containers sequenciais Begin: retorna um iterador para o primeiro elemento do container End: retorna iterador para o último elemento do container (posição n, não usada) Rbegin: retorna iterador para o ultimo elemento (posição n-1, usada) Rend: retorna iterador para o elemento anterior ao primero (posição -1, não usada) Erase: apaga um ou mais elementos do container Clean: apaga todos os elementos do container
15 Navegando nos containers - Iteradores Iterador Objeto que pode acessar uma coleção de mesmo tipo Equivalente a um ponteiro, porém no contexto de containers Cada tipo de container em STL Possui um iterador próprio com funções apropriadas ao container Um iterador de vector permite acesso aleatório Um iterador de list não pemite acesso aleatório
16 Tipos de iteradores Input Lê um objeto do container, se movendo do início para o fim do container Output Escreve um objeto no container, se movendo do início para o fim do container Forward Leitura e escrita somente para frente Bidirectional Leitura e escrita para frente e para tras Random access Leitura e escrita acessando aleatoriamente qualquer objeto do container
17 Operações com iteradores Comum a todos iteradores * Retorna o item ao qual o iterador aponta atualmente ++ Move o iteradora para o próximo objeto (pré ou pós incremento) -- Move o iterador para o objeto anterior (pré e pós decremento) == Compara dois iteradores!= Compara dois iteradores = Atribui um iterador a outro (inválido para o iterador output)
18 Operações com iteradores Específico de random access p+=i p-=i p+i p-i p[i] p<p1 p<=p1 p>p1 p>=p1 iterador avança i posições iterador retorna i posições retorna iterador avançado i posições de p retorna iterador recuando i posições de p retorna referência ao objeto I retorna true se p aponta para objeto anterior a p1 retorna true se p aponta para objeto anterior ou igual a p1 retorna true se p aponta para objeto posterior a p1 retorna true se p aponta para objeto posterior ou igual a p1
19 Containers e iteradores Relação entre os tipos de containers e os tipos de interadores vector Random access iterator deque Random access iterator list Bidirectional iterator set, multiset Bidirectional iterator map, multimap Bidirectional iterator containers adaptador Bidirectional iterators
20 Exemplo de uso do vector
21 Exemplo de uso do list
22 Exemplo de uso do map
23 Exemplo de uso de vector para construção de matriz
24 Exemplo de map usando swap
25 Exemplos online Vários exemplos de uso de stl ml
Standard Template Library (STL)
Standard Template Library (STL) BCC 221 - Programação Orientada a Objectos(POO) Guillermo Cámara-Chávez Departamento de Computação - UFOP Introdução Considerando a utilidade do reuso de software e também
Estruturas de Dados - STL
Estruturas de Dados - STL Baseada na apresentação do prof. João Bittencourt Leandro Tonietto [email protected] Algoritmos e Estruturas de Dados em C++ Unisinos http://www.inf.unisinos.br/~ltonietto/jed/aed/estruturadados-stl.pdf
PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 11: Exercício Integrador (parte 2)
PCS3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 11: Exercício Integrador (parte 2) Escola Politécnica da Universidade de São Paulo Agenda 1. Container List 2. Iterators
Aula 07. Estruturas de dados Lista, Pilha, Fila Pair, Map, Set e Bitset
Logo Aula 07 Estruturas de dados Lista, Pilha, Fila Pair, Map, Set e Bitset 2 Estrutura de Dados Estrutura de dados já foi vista em vetores, que foi uma maneira de manipular várias informações (variáveis
Guia de Consulta Rápida C++ STL. Joel Saade. Novatec Editora
Guia de Consulta Rápida C++ STL Joel Saade Novatec Editora Guia de Consulta Rápida C++ STL de Joel Saade Copyright 2006 da Novatec Editora Ltda. Todos os direitos reservados. É proibida a reprodução desta
Orientação a Objetos - Programação em C++
OO Engenharia Eletrônica Orientação a Objetos - Programação em C++ Slides 14: As classes List e Vector da STL (Standard Template Library). Prof. Jean Marcelo SIMÃO Classe List Uma classe Predefinida na
STL significa Standard Template Library. É uma biblioteca que contém algumas estruturas de dados, como árvore binária e lista encadeada.
STL significa Standard Template Library. É uma biblioteca que contém algumas estruturas de dados, como árvore binária e lista encadeada. Estas estruturas são chamadas de Containers. Elas armazenam coleções
Biblioteca STL aplicada à Maratona de
Biblioteca STL aplicada à Maratona de Programação MEDITEC 5 29 de Maio de 2014 Introdução Estruturas de Dados Pilhas Filas Pares Vectores Listas e Iterators Árvores Balanceadas Strings Mapas Algoritmos
Programação Orientada a Objectos - P. Prata, P. Fazendeiro
Java Collections Framework (JCF) Uma coleção (collection) é um objeto que agrupa vários elementos. A JCF consiste numa arquitetura para representação e manipulação de coleções. Contém: - Um conjunto de
CAP-241 Computação Aplicada I Dica: Standard Template Library (STL) Parte I - Containers Dr. Gilberto Ribeiro de Queiroz
CAP-241 Computação Aplicada I Dica: Standard Template Library (STL) Parte I - Containers Dr. Gilberto Ribeiro de Queiroz São José dos Campos, 28 de Abril de 2016 C++ Templates Suporte a Templates em C++
10.1. Aula 10: Pilhas. O conceito de pilha. Algoritmos de inserção e remoção. Exemplo: Notação Polonesa
10.1 Aula 10: Pilhas O conceito de pilha Algoritmos de inserção e remoção Exemplo: Notação Polonesa 10.2 Pilhas Uso eficiente de listas: inserções e remoções não devem acarretar movimentação de nós. A
Aula 2 Listas Lineares Sequenciais. prof Leticia Winkler
Aula 2 Listas Lineares Sequenciais prof Leticia Winkler 1 Conteúdo Revisão de Vetor Definição Declaração Acesso dos Elementos Inicialização dos Elementos Exemplo Vetor e Função Lista Linear Operações com
Estruturas de Dados. Túlio Toffolo BCC402 Aula 02 Algoritmos e Programação Avançada
Estruturas de Dados Túlio Toffolo [email protected] www.toffolo.com.br BCC402 Aula 02 Algoritmos e Programação Avançada Estruturas de dados elementares Arranjos (arrays) Pilhas (stacks) Filas (queues)
Física Computacional 17 STL
Física Computacional 17 STL 1. Contentores 2. Iteradores 3. Algoritmos [email protected] Física Computacional - MEFT 2009/10 P. Bicudo, P. Martins & M. Cardoso 1 A STL (standard template library)
SCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)
SCC 202 Algoritmos e Estruturas de Dados I Pilhas (Stacks) (implementação dinâmica) Operações alocação encadeada dinâmica typedef struct elem{ tipo_info info; struct elem *lig; tipo_elem; typedef struct{
Aula 8- Standard Template Library. Arthur Ribacki Gabriel Portal Leonardo Chatain Luiz Fernando Scheidegger Rosália Schneider
Aula 8- Standard Template Library Arthur Ribacki Gabriel Portal Leonardo Chatain Luiz Fernando Scheidegger Rosália Schneider STL Motivação... int int_array = 5; char **vetor = new char*[int_array]; for(int
Estruturas de Dados Encadeadas
CURSO: Ciência da Computação DATA: / / 2016 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 14 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir conceitos
Estruturas de Dados Estruturas de Dados Fundamentais
Estruturas de Dados Estruturas de Dados Fundamentais Prof. Eduardo Alchieri Estruturas de Dados Fundamentais Todos os tipos abstratos de dados (pilhas, filas, deques, etc.) podem ser implementados usando
Vectores em C++ Classe vector: Introdução
Vectores em C++ FEUP - MIEEC Programação 2-2008/2009 Classe vector: Introdução A classe vector é uma alternativa à representação de array primitivo Template de classe necessário especificar o tipo dos
TCC 00308: Programação de Computadores I Introdução
TCC 00308: Programação de Computadores I 2017.1 Introdução Processo de resolução de problemas Definição dos requisitos do problema (fazer o programa certo) Entradas Cálculos Casos especiais Saídas Desenvolvimento
Aula de hoje. Listas. Sequências especiais. Introdução. Listas. Sequências. SCC Introdução à Programação para Engenharias
SCC 12 - Introdução à Programação para Engenharias Aula de hoje Introdução Sequências Classes e objetos Listas Listas Operações em listas Pilhas e filas Professor: André C. P. L. F. de Carvalho, ICMC-USP
Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I
LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I Prof. Bruno E. G. Gomes Uma variável em um algoritmo pode ser vista como uma gaveta. A declaração de uma variável reserva uma gaveta (posição) de um certo
Fila. 26 e 31/8/2008 Representação/Implementação: Seqüencial estática Encadeada dinâmica Exercícios/Aplicações
Fila 26 e 31/8/2008 Representação/Implementação: Seqüencial estática Encadeada dinâmica Exercícios/Aplicações Fila O que é? Para que serve? Modelos intuitivos de filas Linhas para comprar bilhetes de cinema
Programação Orientada a Objetos (utilizando C#) Professor Emiliano S. Monteiro Versão 20 Jan/2017.
Programação Orientada a Objetos (utilizando C#) Professor Emiliano S. Monteiro Versão 20 Jan/2017 4.9. Delegates Exercício 217 4.9. Delegates Repare nas diferenças destes dois casos com e sem Delegates:
Aula 28: Arquivos de texto
Aula 28: Arquivos de texto Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Baseado nos slides de Guillermo Cámara-Chávez Aulas anteriores Memória Ponteiro Utilização
Estrutura de Dados. Estrutura de Dados Recursividade. Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0!
Rafael D. Ribeiro, M.Sc. [email protected] http://www.rafaeldiasribeiro.com.br Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0! Fatorial de 0 = 1 Recursividade 1 Recursividade
Princípios de programação em Linguagem C++
Universidade Federal de Santa Maria Departamento de Eletrônica e Computação Prof. Cesar Tadeu Pozzer Princípios de programação em Linguagem C++ 1 Introdução A Linguagem C++ é uma extensão da linguagem
Estruturas de Dados em C++ Conceitos. Leandro Tonietto jun-09
Estruturas de Dados em C++ Conceitos Leandro Tonietto jun-09 Estruturas de dados Armazenamento de vários registros de um mesmo tipo em uma única estrutura. Como visto até então, usando array simples: int
Fila. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Fila SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Fila O que é? Para que serve? 2 Biblioteca Quais são as operações possíveis? Entrar na fila Quem entra, entra onde? Sair da fila Quem sai,
Programação Orientada a Objetos para Redes de Computadores
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel PARTE 2 Programação em C++ - Arrays e Ponteiros Arrays Estruturas de dados que
S U M Á R I O. Definição de Estrutura de Dados. Vetores. Listas Ligadas. Pilhas. Filas
ESTRUTURA DE DADOS DEBORAH FERREIRA S U M Á R I O Definição de Estrutura de Dados 1 Vetores 2 Listas Ligadas 4 Pilhas 6 Filas 8 D E F I N I Ç Ã O D E E S T R U T U R A D E D A D O S Estruturas de dados
Introdução à Programação. Vanessa Braganholo
Introdução à Programação Vanessa Braganholo [email protected] Processo de resolução de problemas (Princípios de Pólya) Definição dos requisitos do problema (fazer o programa certo) Entradas Cálculos Casos
Filas de prioridade. Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010
Filas de prioridade Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010 Qual a Utilidade das Filas de Prioridade? Trabalhos maiores devem ser executados no fim (mesmo que não tenha sido o último
Linguagem de programação Estruturas de armazenamento
Instituto Federal de Minas Gerais Campus Ponte Nova Linguagem de programação Estruturas de armazenamento Professor: Saulo Henrique Cabral Silva ESTRUTURAS DE ARMAZENAMENTO 2 Estruturas de armazenamento
Aula 4: Introdução à Linguagem C++
CI208 - Programação de Computadores Aula 4: Introdução à Linguagem C++ Prof. MSc. Diego Roberto Antunes [email protected] www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor de Ciências Exatas
Universidade de São Paulo
Universidade de São Paulo Instituto de Ciências Matemáticas e Computação SCE5763 - Tipos e Estrutura de Dados - Luis Gustavo Nonato 2 a Lista de Exercícios 1. Seja A um array de inteiros. Escreva algoritmos
SCC Algoritmos e Estruturas de Dados I
SCC 202 - Algoritmos e Estruturas de Dados I TAD Pilha Lembrem...TADs são tipos definidos em termos de seu comportamento e não de sua representação (que pode variar na busca de eficiência) 12/8/2010 Pilha
Introdução à Programação
Introdução à Programação Leonardo Gresta Paulino Murta [email protected] Processo de resolução de problemas (Princípios de Pólya) Definição dos requisitos do problema (fazer o programa certo) Entradas
22/08/2011. Fila. SCC0202 Algoritmos e Estruturas de Dados I. Prof. Thiago A. S. Pardo. Fila. O que é? Para que serve?
Fila SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Fila O que é? Para que serve? 2 1 Biblioteca Problema: automação de uma biblioteca Todos os livros devem ser cadastrados O sistema
Sumário. 1.1 Variáveis Globais e Locais Passagem de Parâmetro (por valor por referência) 1
Sumário Sobre as Autoras ix Introdução xi 1 Sub-rotinas 1 1.1 Variáveis Globais e Locais 1 1.2 Passagem de Parâmetro (por valor por referência) 1 2 Vetores e Matrizes 7 2.1 Vetores 7 2.2 Matrizes 8 2.2.1
ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS
ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS TEORIA CONJUNTO ORDENADO DE ITENS NO QUAL NOVOS ITENS PODEM SER INSERIDOS E A PARTIR DO QUAL PODEM SER ELIMINADOS ITENS EM UMA
Fila. Algoritmos e Estruturas de Dados I. Baseado no material de Thiago A. S. Pardo. Debora Medeiros
Fila Baseado no material de Thiago A. S. Pardo Algoritmos e Estruturas de Dados I Debora Medeiros Fila O que é? Para que serve? 2 Biblioteca Problema: automação de uma biblioteca Todos os livros devem
Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 023/2018 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua
# Estrutura de Dados # Aula - Revisão de C/C++ na Prática. Prof. Leinylson Fontinele Pereira
# Estrutura de Dados # Aula - Revisão de C/C++ na Prática Prof. Leinylson Fontinele Pereira Na aula anterior... Ponteiros Funções Introdução 3 O que vamos aprender? Preparação do ambiente de testes Conceitos
ao paradigma imperativo
PARADIGMA FUNCIONAL PARADIGMA FUNCIONAL: INTRODUÇÃO G Exemplos de linguagens funcionais LISP - Início: LP puramente funcional - Depois: acréscimo de alguns recursos imperativos (aumentaram eficiência de
Tipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares)
Tipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares) 1. Refaça todos os itens do exercício 1 da Lista de Exercícios anterior (Listas
Prof. Marco Antonio M. Carvalho
Prof. Marco Antonio M. Carvalho Lembretes Lista de discussão Endereço: [email protected] Solicitem acesso: http://groups.google.com/group/programaacao Página com material dos treinamentos http://www.decom.ufop.br/marco/extensao/obi/
CIC 110 Análise e Projeto de Algoritmos I
CIC 110 Análise e Projeto de Algoritmos I Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá sort AULA 02 Ordenação A classificação é um problema de design de algoritmo fundamental.
Gerência de Memória Algoritmos de Substituição de Páginas
Gerência de Memória Algoritmos de Substituição de Páginas Carlos Gustavo A. da Rocha Memória Virtual Processo A 60-64kb 56-60kb 52-56kb 48-52kb 44-48kb 40-44kb 36-40kb 32-36kb - A executa: ADD REG, 37000
Pilhas e Filas. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)
Pilhas e Filas Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Pilhas 2 Pilhas (Stack) Estrutura similar às listas lineares que vimos na última aula [Mais Simples]
Algoritmos e Estrutura de Dados Aula 08 Pilhas
Algoritmos e Estrutura de Dados Aula 08 Pilhas Profa. Alana Oliveira e Prof. Davi Viana [email protected] e [email protected] Se não entender, pergunte! Dados e Tipos de Dados Um dado é uma informação
Programação Estruturada Orientada a Objetos
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Programação Estruturada Orientada a Objetos Docente: Éberton da Silva Marinho e-mail: [email protected] [email protected]
Filas Implementação Sequencial
SCE 202 182 Algoritmos e Estruturas de Dados I Filas Implementação Sequencial Conceito Coleção ordenada de itens (lista ordenada) em que a inserção de um novo item se dá em um dos lados no fim e a remoção
