Standard Template Library (STL) II BCC 221 - Programa¸c˜ao Orientada a Objectos(POO)
Guillermo C´amara-Ch´avez Departamento de Computa¸c˜ ao - UFOP
...
Standard Template Library (STL) II BCC 221 - Programa¸c˜ao Orientada a Objectos(POO)
Guillermo C´amara-Ch´avez Departamento de Computa¸c˜ ao - UFOP
Contˆeineres Associativos
I
Acesso direto para armazenar/recuperar elementos
I
Usa chaves I
I
Realiza busca por chaves
Quatro tipos: multiset, set, multimap e map I
Ordenados por chaves
1/55
Contˆeineres Associativos (cont.)
I
multiset e set manipulam conjunto de valores I
I
multimap e map manipulam valores associados com chaves I
I
Valores s˜ao pr´ oprias chaves
Possuem chaves e valores
multimap e multiset permitem chaves duplicadas enquanto set e map n˜ao permitem
2/55
Contˆeineres Associativos (cont.)
3/55
Contˆeiner Associativo multiset
I
Cabe¸calho: #include
I
Armazenamento r´apido, recupera¸c˜ao de chaves (sem valores)
I
Permite duplicatas
I
Iteradores bidirecionais
4/55
Contˆeiner Associativo multiset (cont.)
I
Ordena¸c˜ao de elementos I
I
Feito por objeto com fun¸c˜ao comparadora (operator myObject;
I
Elementos s˜ ao armazenados em ordem crescente
5/55
Contˆeiner Associativo multiset (cont.)
I
Fun¸c˜oes multiset I
ms. insert (value) I
I
ms.count(value) I
I
Insere valor no multiset
Retorna n´ umero de ocorrˆencias do value
ms.find(value) I
Retorna iterador para primeira ocorrˆencia do value
6/55
Contˆeiner Associativo multiset (cont.)
I
ms.lower bound(value) I
I
Retorna iterador para a primeira ocorrˆencia do value
ms.upper bound(value) I
Retorna iterador da primeira posi¸c˜ ao depois da u ´ltima ocorrˆencia do value
7/55
Contˆeiner Associativo multiset (cont.) I
Classe pair I
Manipula pares de valores
I
Objeto pair contem first e second I
I
const iterators
Para um objeto pair q I
q = ms.equal range(value)
I
Ajusta first e second para lower bound e upper bound para um dado value
8/55
Contˆeiner Associativo multiset (cont.) #i n c l u d e // defini¸c˜ ao da template de classe multiset #i n c l u d e // algoritmo copy #i n c l u d e < i t e r a t o r > // ostream iterator u s i n g namespace s t d ; // define o nome abreviado para o tipo multiset utilizado nesse programa t y p e d e f s t d : : m u l t i s e t < i n t , s t d : : l e s s < i n t > > Ims ; i n t main ( ) { c o n s t i n t SIZE = 1 0 ; i n t a [ SIZE ] = { 7 , 2 2 , 9 , 1 , 1 8 , 3 0 , 1 0 0 , 2 2 , 8 5 , 1 3 } ; Ims i n t M u l t i s e t ; // Ims ´e o typedef para multiset integer s t d : : o s t r e a m i t e r a t o r < i n t > o u t p u t ( cout , " " ) ; cout