Sziasztok!
A következő feladathoz kérném a segítségeteket:
Van egy szöveg, és az abban található szavak előfordulását kell megszámolni, majd ki kell tudni íratni a szavak ábécérendjében növekvő/csökkenő, valamint előfordulás szerint növekvő/csökkenő sorrendben is. STL alapú konténerekkel és műveletekkel kell megoldani a feladatot.
Arra gondoltam, hogy map-et használok, a szavak szerint kulcsolva, az érték pedig az előfordulások száma.
A map feltöltése, valamint a kulcs szerint kiírás növekvő/csökkenő kiírás nem is probléma (forward/reverse iterátor van a map-ben), viszont az érték szerinti növekvő/csökkenő kiírásra nincs értelmes ötletem.
Esetleg az, hogy végigmegyek a map-en kulcs szerint, és minden kulcs-érték párt beteszek egy másik fordítva kulcsolt map-be (tehát a kulcs az előfordulások száma, és érték a szöveg). Ekkor viszont probléma az, ha több szó ugyanannyiszor fordul elő.
Van ötletetek erre a problémára?
Petya
- 1985 megtekintés
Hozzászólások
- A hozzászóláshoz be kell jelentkezni
Az biztos nem, mert a sort RandomAccessIteratort-t vár, a map meg BidirectionalIterator-t ad...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
(Nem írtam, hogy a map-en kell menni.)
- A hozzászóláshoz be kell jelentkezni
Csinálsz egy kulcsot és értéket tartalmazó struktúrát és ebből a struktúrából egy vector-t.
A struktúrának kell egy less operátor is.
Végig-iterálsz a map-en, átpakolod a tartalmát a vector-ba, majd sort.
- A hozzászóláshoz be kell jelentkezni
"Végig-iterálsz a map-en, átpakolod a tartalmát a vector-ba, majd sort."
Alternatív megoldás:
push_heap-pel töltsd fel a vektort...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
"Esetleg az, hogy végigmegyek a map-en kulcs szerint, és minden kulcs-érték párt beteszek egy másik fordítva kulcsolt map-be (tehát a kulcs az előfordulások száma, és érték a szöveg). Ekkor viszont probléma az, ha több szó ugyanannyiszor fordul elő."
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni