Kezdőoldal » Számítástechnika » Programok » Foreach vs For - Ki a gyorsabb?

Foreach vs For - Ki a gyorsabb?

Figyelt kérdés

Ha ki szeretném íratni egy n+1 elemű listának/halmaznak az elemeit, amik int típusúak, egy foreach ciklus vagy egy for lesz a gyorsabb, hatékonyabb?



Megj. A halmazok bizonyos nyelvekben csak 256 hosszúak lehetnek, így ki lehet az elemeket írni egy sima for-ral is, nem csak foreach-csel.



2017. okt. 6. 14:45
 1/2 anonim ***** válasza:

A foreach egy lokális változóba másolja az aktuális elemet, aminek plusz processzoridőt vesz igénybe, viszont a kiolvasása már gyorsabb. Emiatt ha lépésenként csak egyszer van szükséged az értékre, akkor valószínűleg a for, egyébként meg a foreach a gyorsabb.


Itt van példaprogram amivel letesztelheted: [link]

2017. okt. 6. 15:40
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:

foreach előnye, hogy bizonyos nyelveknél az üres

halmaznál nem fut le, simán ráeresztheted, nem kell

előre tudnod a méretét (viszont a típusnak jónak

kell lennie), viszont fornál simán kiszaladhatsz az

indexxel. Kapsz egy új változót, amivel játszhatsz,

de az eredeti értékek nem változnak.


for előnye, hogy gyorsabb, illetve használhatod az

eredeti változót, tehát tudod módosítani cikluson

belül is az értékét, míg foreach-nél nem tudod,

épp melyik elemmel dolgozik, mert külön változóba

teszi.


Gyakorlatilag futásidőben nincs számottevő különbség,

amíg kis tömbökkel dolgozol, és nem 20 megás stringeket

hívsz meg foreach-el, itt már a változóba másolás ideje

mérhető.

2017. okt. 6. 16:56
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!