- iOS alkalmazások
- Google Pixel 10 Pro XL – tíz kicsi Pixel
- Felrobbant a Pixel Fold Zack Nelson kezében
- Milyen okostelefont vegyek?
- Milliókkal olcsóbb a Model Y Standard Magyarországon
- Samsung Galaxy S24 - nos, Exynos
- Bemutatkozott a Poco X7 és X7 Pro
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Poco X3 Pro - hardverfrissítés
- Google Pixel topik
Ú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!
- Azonnali VGA-s kérdések órája
- PlayStation 5
- HBO Max
- Világ Ninjái és Kódfejtői, egyesüljetek!
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- sziku69: Fűzzük össze a szavakat :)
- Azonnali alaplapos kérdések órája
- Dell notebook topic
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- HP notebook topic
- További aktív témák...
- Latitude 5350 13.3" FHD IPS Ultra 5 125U 16GB 512GB NVMe ujjlolv IR kam gar
- Oculus Rift CV1
- Kitűnő állapot!! HP Chromebook x360 13b / 8GB / 256GB SSD / EU bill magyarra matricázva
- Ipad Pro 6th Gen. M2 12.9 Wifi + Cellular
- ASUS TUF A15 FA506 -15,6"FHD 144Hz - Ryzen 5 7535HS - 16GB - 512GB -RTX 3050 - Win11 - 4 év garancia
- HGST HUH721010AL5200 10TB 7.2k SAS HDD, DELL branded, nettó 40000Ft + ÁFA, 1 év garancia
- Keresünk dokkolókat
- HIBÁTLAN iPhone 14 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS3159
- Bomba ár! Lenovo ThinkPad T14s G2 AL - i7-1185G7 I 16GB I 1TSSD I 14" FHD Touch I W11 I Cam I Gari!
- LG 25GR75FG - E-Sport Monitor - FHD 360Hz 1ms - NVIDIA Reflex + G-sync - AMD FreeSync - HDR 400
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest