Milyen adatszerkezetet használ a List típus c# nyelvben az adatok tárolására?
Például ha én akarok írni egy saját list típust,akkor az adatok tárolására valami olyan adatszerkezetet használnék amivel lehet hozzáadni,törölni stb.
De ezzel az a baj,hogy nem fogok tudni hatékonyabb List típust írni mint a standard list mert listet használok az objektumomban.
A beépített list hogyan van megvalósítva miben tárolja az adatokat?
Én nekem olyasmi kellene ami nagyon gyors és használható rá az indexelés pl egy beépített tömb.De nem tudom,hogy megoldható lenne e az,hogy a beépített tömbből töröljek adatokat pl középről és fontos lenne az,hogy ne kezdje ez miatt átpakolni az adatokat,hogy újból össze álljon a sorrend én ezt nem akarom.Maradjon közte nem használt memória amit majd mutatóaritmetikával átt ugrok.
A tömb azért gyors, mert egy helyen van minden adata, tudod, hogy ha X byte az adat, akkor adott indextől mindig X bájtnyira lesz a következő. Ha ezt borítod, mert te nem akarod eltolni az adatokat törléskor, akkor extra bürokrácia kell, amitől lassabb lesz.
El kell dönteni, mennyit fogsz olvasni és mennyit törölni, mennyibe kerül a másolás, aztán adatszerkezetet választani ehhez. Az viszont szinte biztos, hogy a láncolt adatszerkezetek lassúak lesznek.
akkor extra bürokrácia kell, amitől lassabb lesz.
Egyáltalán nem lassú ez:
A mutatóaritmetika gyors mérettől függetlenül nagyon gyorsnak mondható.Az adatok eltolása na az lassú főleg ha nagy objektekről van szó.Ezért sza* a lista.
"Ezért sza* a lista."
Úgy érted, ezért nem felel meg esetleg a céljaidnak.
Igen. :-)
A legnagyobb baj viszont az,hogy eggyik sem felel meg a céljaimnak.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!