• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
 
20A biblioteca padrão de gabaritos (STL)Objetivos• Ser capaz de usar contêineres padronizados da STL, contêineres adaptadorese “quase contêineres”.• Ser capaz de programar com as dezenas de algoritmos daSTL.• Compreender como algoritmos usam iteradores para acessar os elementos doscontêineres da STL.• Familiarizar-se com os recursos da STL disponíveis na Tnternet e na WorldWide Web.As formas que um contêiner brilhante pode conter Theodore RoethkeViaje por todo o universo em um mapa. Miguel de CervantesOh! tendes perseverança condenóvel, e arte suficiente para poder corromper umsanto.William ShakespeareAquele enorme monte de pó chamado “história Augustine BirreilO historiador é um profeta em reverso. Friedrich von SchlegelAttempt the end, and never stand to doubt;Nothing ‘s so hard but search willflnd it out.Robert HerrickProssiga - continue andando. Thomas MortonCAPÍTULO 20 - A BIBLIOTECA PADRÃO DE GABARITOS (STL) 917Visão Geral20.1 Introdução à biblioteca padrão de gabaritos (STL)20.1.1 Introdução a contêineres20.1.2 Introdução a iteradores20.1.3 Introdução a algoritmos20.2 Contêineres seqüenciais20.2.1 O contêiner seqüencial vector 20.2.2 O contêiner seqüencial list20.2.3 O contêiner seqüencial deque20.3 Contêineres associativos20.3.1 O contêiner associativo multiset20.3.2 O contêiner associativo set20.3.3 O contêiner associativo multimap20.3.4 O contêiner associativo map20.4 Adaptadores de contêineres
 
20.4.1 O adaptador stack20.4.2 O adaptador queue20.4.3 O adaptador priority_queue20.5 Algoritmos20.5.1 f iii, fill_n, generate e generate_n20.5.2 equal, mismatch e lexicographical compare20.5.3 remove, remove if, remove copy e remove copyif 20.5.4 replace, replace if replace copy e replacecopyif 20.5.5 Algoritmos matemáticos20.5.6 Algoritmos básicos de pesquisa e classificação20.5.7 swap, iter_swap e swap_ranges20.5.8 copybackward, merge, unique e reverse20.5.9 inplacemerge, unique_copy e reversecopy20.5.10 Operações sobre conjuntos20.5.11 lowerbound, upper_bound e equal_range20.5.12 Heapsort20.5.13 minemax20.5.14 Algoritmos não-cobertos neste capítulo20.6 A classe bitset20.7 Objetos funçãoResumo• Terminologia. Erros comuns de programação . Boas práticas deprogramação. Observações deengenharia de software • Dicas de desempenho • Dicas de teste e depura çãoExercícios de auto-revisãoRespostas aos exercícios de auto-revisão • Exercícios • Recursos para a STL naInternet e na World WideWeb . Bibliografia da STLCAPÍTULO 20 - A BIBLIOTECA PADRÃO DE GABARITOS (STL) 919“inteligente”, corno veremos. Classes de iteradores são projetadas para seremusadas genericamente com qualquer contêiner.Os contêineies encapsulam algumas operações primitivas, mas os algoritmos daSTL são implementados independentemente dos contêineres.A STL evita new e delete em favor de alocadores para a alocação e desalocaçãode memória. O programador pode fornecer alocadores para customizar amaneira como um contêiner trata a administração de memória, mas osalocadores default fornecidos pela STL são sufucientes para a maioria dasaplicações. Alocadores customizados são um tópico avançado, fora do escopodeste texto.Este texto pretende ser uma introdução à STL. Ele não é de forma algumacompleto ou abrangente. Entretanto, é um capítulo amigável e acessível quedeveria lhe convencer do valor da STL e incentivá-lo a estudar mais a mesma.Usamos a mesma abordagem de “código que funciona” que usamos ao longo detodo o livro. Em termos da sua percepção do valor de “reutilizar, reutilizar,
 
reutilizar”, este pode ser um dos capítulos mais importantes do livro. Oscontêineres da STL contêm as estruturas de dados mais comuns e de maior valor. Elas são todas definidas como gabaritos, de forma que você possaadaptá-las para conter o tipo de dados relevante para suas aplicaçõesparticulares.No Capítulo 15, estudamos estruturas de dados. Construímos listasencadeadas, filas, pilhas e árvores. Ligamos cuidadosamente objetos componteiros. O código baseado em ponteiros é complexo e a menor omissão oudesatenção pode conduzir a sérias violações de acesso à memória e erros de“perda de memória” sem reclamações do compilador. Implementar estruturas dedados adicionais, tais como deques, filas com prioridade, conjuntos, mapas, etc.iria requerer um trabalho adicional substancial.Observação de engenharia de software 20.2Evite reinventar a roda; programe com componentes reutilizáveis da bibliotecapadrão de C++. A STL contém muitas das estruturas de dados mais populares,como contêineres, e fornece vários algoritmos populares que os programasusam para processar dados nestes contêineres.Dica de (este e depura ção 20.1Quando programamos com estruturas de dados e algoritmos baseados emponteiros, devemos fazer nossa própria depuraão e teste para garantir quenossas estruturas de dados, classes e algoritmos funcionam corretamente. Efácilcometer erros ao manipular ponteiros neste nível tão baixo. “Perdas dememória” e violações de acesso à memo ria são comuns em tal códigocustomizado. Para a maioria dos pro gramadores, e para maioria das aplicaçõesque necessitarão escrever as estruturas de dados definidas como gaba- ritos,pré-empacotadas, da STL são suficientes. Usar o código da STL pode evitar muito tempo de teste e depura ção. Uma precaução a ser tomada com relação agrandes projetos é que o tempo de compilação pode ser significativo.Cada contêiner da STL tem funções membro associadas. Algumasfuncionalidades se aplicam a todos os contêineres da STL. Outrasfuncionalidades são específicas para determinados contêineres. Ilustramos amaioria das funcionalidades comuns com os gabaritos de classe vector, list edeque. Apresentamos funcionalidades específicas para um contêiner nosexemplos de cada um dos outros contêineres da STL.Fizemos uma pesquisa extensa de recursos disponíveis na InternetlWorld WideWeb e os incluímos para vocêno final deste capítulo. Também fornecemos uma extensa bibliografia de artigosrelacionados com a STL.20.1.1 Introdução a contêineres
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...