Potrebuju poradit co bude nejlepsi pro hledani pomoci dvou klicu.
mam object Data s atributy: jednim z nich je jmeno ktere bude jedinecne(klic 1), a dalsim casove hodnoty-cisla(klic 2).
Na vstup mi budou prichazet az GB soubory. s tim ze pri kazdem vstupu musim zkontrolovat zda v pameti uz nejsou data se stejnym jmenem (klic1) pokud ano->upravim. pokud ne->pridam.
Zaroven budu pri nedostatku pameti data mazat podle klice2(tedy podle casu - neco jako FIFO).
Mam dva navrhy:
1)
map <string Klic1, Data> pamet;
map <int Klic2, string Klic 1> fronta;
prvni mapa bude usporadana podle jmena a bude obsahovat objekty Dat a druha mapa bude usporadana podle klice2-cisla, a bude obsahovat hodnotu Klice1. Takze pri mazani najdu prvni nejmensi nebo nejvetsi polozku, zjistim Klic2 a podle nej upravim mapu pamet.
2)
list <Data> pamet
map <string Klic1, adresa_na_Data> mapJmena;
map <int Klic2, adresa_na_Data> mapFronta;
Data ulozim do listu, a do jednotlivych map ulozim jednotlive klice a adresy na data do toho listu.
Nevim co je lepsi. Jestli v prvnim pripade mit jen dve mapy, s tim ze pri mazani najdu nejmensi prvek v druhe mape, vemu klic a najdu Data v mape prvni, Nebo jestli hledat jen vzdy v jedne mape a pak dle adresy data v listu upravit,
Dvojka bude asi lepsi reseni,ne?