Cal implementar la classe llista_paraules
. Aquesta classe defineix un contenidor
d’objectes paraula
.
Per a implementar-ho feu servir un vector. La mida d’aquest vector vindrà donada per un atribut de la classe que es diu midaBloc
,
de manera que quan instanciem la classe llista_paraules
, contingui un vector de mida midaBloc
.
Quan afegim un objecte de tipus paraula
a llista_paraules
haurem de veure si ja hi és.
Si hi és, el que cal és augmentar la freqüència d’aquesta paraula amb l’operador ++
que té la classe paraula
.
Altrament, l’haurem d’afegir al vector de manera ordenada. Però abans de fer això, haurem d’assegurar-nos
que el vector té prou espai. En cas que això no fos possible, caldria ampliar en midaBloc
la mida del vector.
Heu d’implementar la cerca d’una paraula a llista_paraules
amb una cerca dicotòmica.
Tingueu en compte que .size()
torna un unsigned int
.
Entrada
L’entrada és un enter que representa el valor que haurà de tenir midaBloc
i, tot seguit, una llista de parells
(codi, paraula). El codi pot ser a
o f
. En el primer cas, voldrà dir que cal afegir la paraula
que segueix a l’objecte de tipus llista_paraules
. En el segon cas, el que caldrà fer és treure per pantalla
la freqüència de la paraula que segueix per pantalla.
Sortida
La sortida són les freqüències de les paraules que tindran el codi f
a davant.
Observació
Cal enviar 1 sol fitxer: llista_paraules.cc
que té la implementació de la classe llista_paraules
.
Cal enviar-lo com a fitxer .tar
.
Us donem la implementació dels operadors >>
i +=
de la classe llista_paraules
al fitxer
ja_implementat.txt
. Copieu-ne el contingut al fitxer llista_paraules.cc
que heu de lliurar.
La resta de fitxers us serviran per entendre el que fan la classe paraula
i la classe llista_paraules
.
Tot i que en aquest exercici no és rellevant, fixeu-vos que podem instanciar la classe llista_paraula
sense el paràmetre midaBloc
, ja que aquest té un valor per defecte a la definició de la constructora.
Input
5 a cup a psoe f juntspelsi f cup a cup a cup a juntspelsi a juntspelsi a qwerty a juntspelsi f pp a pp a cup a pp a psoe a qwerty a juntspelsi a juntspelsi f psoe
Output
0 1 0 2
Input
2 f p1 f p2 f p3 a p2 a p3 f p1 f p2 f p3 a p1 a p2 a p3 a p3 f p1 f p2 f p3 a p3 a p2 a p1 f p1 f p2 f p3 a p2 a p1 f p1 f p2 f p3 a p1 a p1 f p1 f p2 f p3
Output
0 0 0 0 1 1 1 2 3 2 3 4 3 4 4 5 4 4