C++ - ha a for ciklus feltétele menet közben változik, a ciklus ezt figyelembe veszi és változtat a végrehajtások számán?
Az eset:
//myvector.size()=3
//mybool=true;
for(int i = 0; i < myvector.size(); i++)
{
if(mybool==true)
{
myvector.erase(myvector.begin()+i);
mybool=false;
}
}
Jajj...
Az okoskodás mindig megy...
Ez a kód két dolgot csinál:
1. Vagy semmit, de azt rohadt lassan.
2. Vagy kiveszi az első elemet.
Mást soha.
A ciklustól csak átláthatatlan, bizonyítja az is, hogy neked sem sikerült megértened.
Ami meg az eredeti kérdés akart lenni, lásd az első válaszom.
Glass Tiger bocsáss meg ha félreértelek vagy téged vagy a kérdezőt, de a kód szerintem csak egy példa volt és eléggé nyilvánvalónak tűnik hogy a kérdező célja nem az hogy kivegye az első elemet a Vectorjából, mert akkor csak simán meghívná az erase metódust az első elemre, de a kérdés nem is erre vonatkozott.
Azt kérdezte hogy a for ciklus feltétele minden iterációnál kiértékelődik, vagy pedig csak a legelején, és utána konstansak tekinti? A példában ez arra vonatkozik hogy a for minden körben meghívja a myvector size metódusát, vagy a kezdeti értékekkel dolgozik?
Ezt sehol nem látom hogy megválaszolnád, viszont azt többször is megemlíted hogy "a kérdés hülyeség", és "a kib#szott kód egy orbitális baromság", miközben random emberekkel vitatkozol tárgytalan dolgokról. Kicsit visszafoghatnád magad és elgondolkozhatnál azon hogy mit és milyen hangnemben írsz le. Egy kis civilizáltság szerintem tőled is kitelne.
A kérdező számára pedig a válaszom hogy igen, minden iterációnál kiértékelődik a ciklusfeltétel, de ezt nagyon egyszerűen letesztelhetted volna. Ajánlom hogy ha valami nem teljesen egyértelmű számodra, játsszál a kóddal, és próbál ki.
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!