Standard Template Library (STL) II

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 ...
1 downloads 0 Views 853KB Size
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