SlideShare uma empresa Scribd logo
1 de 33
Introdução à STL (Standard  Template Library) Felipe Sampaio, Robson Dornelles, Gerson Geraldo H. Cavalheiro
Templates ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Templates ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Afinal, o que é? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Por que usar? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Componentes básicos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Containers “top of mind” ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uso do vector ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uso do vector ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uso do vector ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uso do vector ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uso do vector ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uso de list ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uso de list ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uso de list ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uso de map ,[object Object],[object Object],[object Object],[object Object]
Uso de map ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uso de map ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uso de map ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Uso de map #include <map> double bancaSaoJoao( const caipira& caipa ) { map<char*,float,ltstr> preco; char  item[20]; double conta = 0.0; price[&quot;carapinha&quot;] = 0.75; preco[&quot;quentao&quot;]  = 1.5; preco[&quot;pinhao&quot;]  = 1.25; preco[&quot;pipoca&quot;]  = 0.75; while( std::cin >> item ) { item = caipa.whatYouWantBaby(); conta += price[item]; } return conta; }
Uso de map #include <map> struct ltstr { bool operator()(const char* s1, const char* s2) const { return strcmp(s1, s2) < 0; } }; double bancaSaoJoao( const caipira& caipa ) { map<char*,float,ltstr> preco; char  item[20]; double conta = 0.0; preco[&quot;carapinha&quot;] = 0.75; ...
Uso de map int main() { map<const char*, int, ltstr> months; months[&quot;january&quot;] = 31;  months[&quot;february&quot;] = 28; months[&quot;march&quot;] = 31;  months[&quot;april&quot;] = 30; months[&quot;may&quot;] = 31;  months[&quot;june&quot;] = 30; months[&quot;july&quot;] = 31;  months[&quot;august&quot;] = 31; months[&quot;september&quot;] = 30;  months[&quot;october&quot;] = 31; months[&quot;november&quot;] = 30;  months[&quot;december&quot;] = 31; cout << &quot;june -> &quot; << months[&quot;june&quot;] << endl; map<const char*, int, ltstr>::iterator cur  = months.find(&quot;june&quot;); map<const char*, int, ltstr>::iterator prev = cur; map<const char*, int, ltstr>::iterator next = cur;  ++next; --prev; cout << &quot;Previous (in alphabetical order) is &quot; << (*prev).first << endl; cout << &quot;Next (in alphabetical order) is &quot; << (*next).first << endl; }
Iterators ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Iterators ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Algoritmos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Criando classes para serem incluidas em containers ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Exemplo de tipo definido pelo usuário ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cuidados ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cuidados ,[object Object],[object Object],[object Object],[object Object],[object Object]
Cuidados ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Cuidados ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Erro de compilação comum! ,[object Object],[object Object],[object Object],[object Object]
Muitos outros containers ,[object Object],[object Object],[object Object],[object Object]

Mais conteúdo relacionado

Mais procurados

8 ponteiros, ponteiros e vetores e alocacao dinamica de memoria
8   ponteiros,  ponteiros e vetores e alocacao dinamica de memoria8   ponteiros,  ponteiros e vetores e alocacao dinamica de memoria
8 ponteiros, ponteiros e vetores e alocacao dinamica de memoria
Ricardo Bolanho
 
11 tipos abstratos de dados
11   tipos abstratos de dados11   tipos abstratos de dados
11 tipos abstratos de dados
Ricardo Bolanho
 
12 algoritmos e funcoes recursivas
12   algoritmos e funcoes recursivas12   algoritmos e funcoes recursivas
12 algoritmos e funcoes recursivas
Ricardo Bolanho
 
Programando em python recursao
Programando em python   recursaoProgramando em python   recursao
Programando em python recursao
samuelthiago
 
2 funcoes e estrutura de blocos
2   funcoes e estrutura de blocos2   funcoes e estrutura de blocos
2 funcoes e estrutura de blocos
Ricardo Bolanho
 

Mais procurados (19)

Vetores, Matrizes e Strings em C Parte 3
Vetores, Matrizes e Strings em C Parte 3Vetores, Matrizes e Strings em C Parte 3
Vetores, Matrizes e Strings em C Parte 3
 
8 ponteiros, ponteiros e vetores e alocacao dinamica de memoria
8   ponteiros,  ponteiros e vetores e alocacao dinamica de memoria8   ponteiros,  ponteiros e vetores e alocacao dinamica de memoria
8 ponteiros, ponteiros e vetores e alocacao dinamica de memoria
 
Função malloc
Função mallocFunção malloc
Função malloc
 
Vetores, Matrizes e Strings em C Parte 1
Vetores, Matrizes e Strings em C Parte 1Vetores, Matrizes e Strings em C Parte 1
Vetores, Matrizes e Strings em C Parte 1
 
Apostila rpira
Apostila rpiraApostila rpira
Apostila rpira
 
11 tipos abstratos de dados
11   tipos abstratos de dados11   tipos abstratos de dados
11 tipos abstratos de dados
 
Linguagem C 07 Registros
Linguagem C 07 RegistrosLinguagem C 07 Registros
Linguagem C 07 Registros
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
 
12 algoritmos e funcoes recursivas
12   algoritmos e funcoes recursivas12   algoritmos e funcoes recursivas
12 algoritmos e funcoes recursivas
 
Java script aula 04 - objeto array
Java script   aula 04 - objeto arrayJava script   aula 04 - objeto array
Java script aula 04 - objeto array
 
Linguagem C 10 Arquivos
Linguagem C 10 ArquivosLinguagem C 10 Arquivos
Linguagem C 10 Arquivos
 
Ling c
Ling cLing c
Ling c
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10
 
Python Funcional
Python FuncionalPython Funcional
Python Funcional
 
Programando em python recursao
Programando em python   recursaoProgramando em python   recursao
Programando em python recursao
 
Python Numpy
Python NumpyPython Numpy
Python Numpy
 
Linguagem C - Estruturas
Linguagem C - EstruturasLinguagem C - Estruturas
Linguagem C - Estruturas
 
2 funcoes e estrutura de blocos
2   funcoes e estrutura de blocos2   funcoes e estrutura de blocos
2 funcoes e estrutura de blocos
 
ESTRUTURA DE DADOS (JAVA) AULA 09
ESTRUTURA DE DADOS (JAVA) AULA 09ESTRUTURA DE DADOS (JAVA) AULA 09
ESTRUTURA DE DADOS (JAVA) AULA 09
 

Destaque

Stl (standard template library)
Stl (standard template library)Stl (standard template library)
Stl (standard template library)
Hemant Jain
 
Lecture11 standard template-library
Lecture11 standard template-libraryLecture11 standard template-library
Lecture11 standard template-library
Hariz Mustafa
 

Destaque (6)

Standard template library
Standard template libraryStandard template library
Standard template library
 
Stl (standard template library)
Stl (standard template library)Stl (standard template library)
Stl (standard template library)
 
How to choose best containers in STL (C++)
How to choose best containers in STL (C++)How to choose best containers in STL (C++)
How to choose best containers in STL (C++)
 
Lecture11 standard template-library
Lecture11 standard template-libraryLecture11 standard template-library
Lecture11 standard template-library
 
C++ Standard Template Library
C++ Standard Template LibraryC++ Standard Template Library
C++ Standard Template Library
 
standard template library(STL) in C++
standard template library(STL) in C++standard template library(STL) in C++
standard template library(STL) in C++
 

Semelhante a C++ Standard Template Library

Linguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De RepeticaoLinguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De Repeticao
Regis Magalhães
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
Regis Magalhães
 
Mini Curso de Python para Coding Dojo
Mini Curso de Python para Coding DojoMini Curso de Python para Coding Dojo
Mini Curso de Python para Coding Dojo
Fabricio NErdmann
 
Unidade4.1 Oracle Or
Unidade4.1 Oracle OrUnidade4.1 Oracle Or
Unidade4.1 Oracle Or
UFU
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
apolllorj
 

Semelhante a C++ Standard Template Library (20)

Java4
Java4Java4
Java4
 
1 exercicio de vectores em C
1 exercicio de vectores em C1 exercicio de vectores em C
1 exercicio de vectores em C
 
Linguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De RepeticaoLinguagem C 04 Estruturas De Repeticao
Linguagem C 04 Estruturas De Repeticao
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Conhecendo ou relembrando C
Conhecendo ou relembrando CConhecendo ou relembrando C
Conhecendo ou relembrando C
 
Python Emsl2009
Python Emsl2009Python Emsl2009
Python Emsl2009
 
Mini Curso de Python para Coding Dojo
Mini Curso de Python para Coding DojoMini Curso de Python para Coding Dojo
Mini Curso de Python para Coding Dojo
 
Maratona de Programação com STL
Maratona de Programação com STLMaratona de Programação com STL
Maratona de Programação com STL
 
Ed1
Ed1Ed1
Ed1
 
Linguagem C 06 Funcoes
Linguagem C 06 FuncoesLinguagem C 06 Funcoes
Linguagem C 06 Funcoes
 
LINQ - Language Integrated Query
LINQ - Language Integrated QueryLINQ - Language Integrated Query
LINQ - Language Integrated Query
 
Unidade4.1 Oracle Or
Unidade4.1 Oracle OrUnidade4.1 Oracle Or
Unidade4.1 Oracle Or
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
Workshop Python.1
Workshop Python.1Workshop Python.1
Workshop Python.1
 
A linguagem Python
A linguagem Python A linguagem Python
A linguagem Python
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScript
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDB
 
Programação em C
Programação em CProgramação em C
Programação em C
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 

C++ Standard Template Library

  • 1. Introdução à STL (Standard Template Library) Felipe Sampaio, Robson Dornelles, Gerson Geraldo H. Cavalheiro
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. Uso de map #include <map> double bancaSaoJoao( const caipira& caipa ) { map<char*,float,ltstr> preco; char item[20]; double conta = 0.0; price[&quot;carapinha&quot;] = 0.75; preco[&quot;quentao&quot;] = 1.5; preco[&quot;pinhao&quot;] = 1.25; preco[&quot;pipoca&quot;] = 0.75; while( std::cin >> item ) { item = caipa.whatYouWantBaby(); conta += price[item]; } return conta; }
  • 21. Uso de map #include <map> struct ltstr { bool operator()(const char* s1, const char* s2) const { return strcmp(s1, s2) < 0; } }; double bancaSaoJoao( const caipira& caipa ) { map<char*,float,ltstr> preco; char item[20]; double conta = 0.0; preco[&quot;carapinha&quot;] = 0.75; ...
  • 22. Uso de map int main() { map<const char*, int, ltstr> months; months[&quot;january&quot;] = 31; months[&quot;february&quot;] = 28; months[&quot;march&quot;] = 31; months[&quot;april&quot;] = 30; months[&quot;may&quot;] = 31; months[&quot;june&quot;] = 30; months[&quot;july&quot;] = 31; months[&quot;august&quot;] = 31; months[&quot;september&quot;] = 30; months[&quot;october&quot;] = 31; months[&quot;november&quot;] = 30; months[&quot;december&quot;] = 31; cout << &quot;june -> &quot; << months[&quot;june&quot;] << endl; map<const char*, int, ltstr>::iterator cur = months.find(&quot;june&quot;); map<const char*, int, ltstr>::iterator prev = cur; map<const char*, int, ltstr>::iterator next = cur; ++next; --prev; cout << &quot;Previous (in alphabetical order) is &quot; << (*prev).first << endl; cout << &quot;Next (in alphabetical order) is &quot; << (*next).first << endl; }
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.