Kezdőoldal » Számítástechnika » Programozás » Az mirt van hogy például egy...

Az mirt van hogy például egy stringekkel feltöltött vectornak az elemeit kitörlöm akkor mégis elt tudom érni a vector elemeit a [] operator segítségével?

Figyelt kérdés

Ha at függvényt hívok rá akkor összeomlik a program mert crashed lesz ez érthető mert üres a vector én pedig úgy akartam visszaadni az egyik elemét.


De ha [] operatorral próbálom visszaadni az üres vektor egy elemét akkor ott vissza adja.


Ez hogy lehet?


2013. jan. 6. 18:23
 1/6 Szaby34 válasza:
Elárulod, hogy miyen nyelvről van szó? :)
2013. jan. 6. 18:41
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:
C++.
2013. jan. 6. 22:58
 3/6 A kérdező kommentje:
Memóriaszemetet adna vissza a vector operator[] ja?
2013. jan. 6. 22:59
 4/6 anonim ***** válasza:

És mégis hogyan törlöd az elemeket?

A vektor valójában egy (okos) tömb, ezért ha elemet törölsz előfordulhat, hogy ott marad a memóriában egy érvénytelen területen.

2013. jan. 7. 02:55
Hasznos számodra ez a válasz?
 5/6 A kérdező kommentje:
myvector.erase(it);
2013. jan. 7. 04:00
 6/6 anonim ***** válasza:

Mert ténylegesen nem törlődik, minden erase hívás után.

Egyrészt maga az OS memóriafelszabadítást nem fogja byte-onként végezni csak adott granulációnak megfelelően, a hatékonyság miatt, ezen felül a maga a vector sem fog mindig memóriafelszabadítást kérni az OS-től, lerontaná a sebességet. Függ attól hogy miket tárolsz a vektorba, de ha csak primitív típusú értékeket akkor szinte biztos hogy túl is indexelheted a [] operátorral a vecor-t ha töröltél belőle ha nem,(persze kerüld az ilyesmit), sőt így csúnya dolgokat lehet csinálni, külön semmi ellenőrzés nincs rá hogy túlindexelted e, addig túl lehet lépni amíg nem lépsz át memóriaszegmenst, az at metódus meg index határellenőrzést csinál, nem engedi túlindexelni, viszont ez plusz overhead.

2013. jan. 7. 23:23
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!