Hirdetés
- Milyen monitort vegyek?
- Újra nekifeszül az asztali konzolok piacának a Valve
- Azonnali alaplapos kérdések órája
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- OLED TV topic
- Melyik tápegységet vegyem?
- Gaming notebook topik
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Korszakok keverednek a HYTE legfrissebb, lekerekített külsejű házában
- TCL LCD és LED TV-k
Új hozzászólás Aktív témák
-
Jester01
veterán
válasz
ArchElf
#2429
üzenetére
Ezek a megoldások mind működnek, de egyik sem túl hatékony. Mindig szem előtt kell tartani az adott adatszerkezet előnyeit és hátrányait valamint azt a tényt, hogy általában a programok lassúságának fő oka a memória foglalás illetve felszabadítás valamint a másolgatás.
Jelen esetre vetítve: vegyük észre, hogy a List elejéről törlés ugyanolyan másolgatást von maga után mint az első megoldásban lévő explicit mozgatás. Tehát lassú.
Ide kéremszépen egy cirkuláris buffer nevű adatszerkezet kell, ami egyszeri memóriafoglalással, másolgatás nélkül megoldja a problémát. MOD: és persze az összeget is nyilván kell tartani, nem mindig újraszámolni.
Nyilván a fentieknek akkor van értelme ha sok adattal, sokszor dolgozunk. A konkrét feladatban valószínűleg mindegy, hiszen a program leginkább a felhasználóra vár. Kivéve persze ha egy fájlt vagy másik program kimenetét irányítjuk bele.
Parse azért rosszabb, mint a TryParse, mert ha nem tud konvertálni (pl szám helyett szöveget adtál be), akkor dob egy FormatException-t, és azt le kell kezelni, hogy ne szálljon el a program.
Az addig igaz, hogy ez a különbség a kettő között. De ettől egyik sem rosszabb a másiknál, csak tudni kell mikor kell őket használni. Ha "helyben" tudod kezelni a hibás adatot, akkor TryParse, ha pedig csak blokk szinten vagy a hívóban akkor jó a kivételkezelés. Mérlegelni kell továbbá, hogy milyen gyakori a hibás bevitel, mivel a kivételkezelésnek esetenként jelentős többletköltsége van.
A te kódod egyébként nem túl szerencsés, mivel az értelmezhetetlen adatot csendben nullának veszi. Helyesebb lenne egyszerűen kihagyni. (Természetesen a felhasználó tájékoztatása mellett, de ezt ugye az itteni programocskákból szándékosan szoktuk elhagyni.)
Elnézésést a sok kötözködésért, igyekeztem konstruktív lenni.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Kerékpárosok, bringások ide!
- Milyen monitort vegyek?
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Napelem
- Újra nekifeszül az asztali konzolok piacának a Valve
- jakra: Retro gyujtemenyem (cloud synced for safety...)
- laskr99: Processzor és videokártya szilícium mag fotók újratöltve!
- Pötyi: 4. RETRO KONZOL ÉS SZÁMÍTÓGÉP BÖRZE - '25. november 16.
- Linux kezdőknek
- Bittorrent topik
- További aktív témák...
- BESZÁMÍTÁS! Asus A620M R5 7600X 32GB DDR5 1TB SSD RTX 3080 10GB Zalman M4 A-Data 750W
- Gombászkönyvek egyben
- BESZÁMÍTÁS! ASUS H510M i3 10105F 16GB DDR4 512GB SSD RX 590 8GB ZALMAN T4 Plus ADATA 600W
- BESZÁMÍTÁS! Sony PlayStation 5 825GB SSD lemezes konzol garanciával hibátlan működéssel
- REFURBISHED és ÚJ - Lenovo ThinkPad 40AS USB-C Dock Gen2 (akár 3x4K felbontás)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő


