Rychlost hledani v propojenych datech – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Rychlost hledani v propojenych datech – C / C++ – Fórum – Programujte.comRychlost hledani v propojenych datech – C / C++ – Fórum – Programujte.com

 

xJakubS0
Newbie
1. 4. 2012   #1
-
0
-

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?

Nahlásit jako SPAM
IP: 46.47.170.–
Je beznadějné udělat blbuvzdorný program, protože blbci jsou geniální.
Bald3rr0
Super člen
1. 4. 2012   #2
-
0
-

#1 xJakubS
A nebude lepší si ty data podle klíče uložit do mapy a pak mít nějakou jednoduchou FIFO frontu, kde budeš mít jen ukazatele na jednotlivé prvky v mapě?

Přijde ti vstup, zkontroluješ, uložíš do mapy a zároveň přidáš ukazatel na něj do fronty. Pokud budeš chtít mazat, jen si vezmeš ukazatel na začátku fronty a budeš pracovat s ním.

Nahlásit jako SPAM
IP: 88.100.116.–
xJakubS0
Newbie
1. 4. 2012   #3
-
0
-

#2 Bald3rr
to me taky napadlo. ale potrebuju mit jak ukazatel v te FIFO na data v mape, tak i ukazatel v te mape s temi daty na prvek v FIFO. ktery pak muzu smazat. Muze se stat, ze najdu prvek ktery uz tam je, potrebuji ho smazat a s nim i ukazatel v te FIFO, ktery je nekde uprostred...

Nahlásit jako SPAM
IP: 46.47.170.–
Je beznadějné udělat blbuvzdorný program, protože blbci jsou geniální.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 37 hostů

Podobná vlákna

Rychlost — založil Zelenáč

Rychlost — založil Luckin

Rychlost dotazů — založil DragonBehemont

Rychlost funkce — založil peter

Rychlost switch — založil Franceq

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý