Dinamikus több ugyanaz, mint a vektor? (C++)
Mivel a dinamikus tömbök elemeinek száma is bővíthető ugyanúgy, mint a vektoroknak.Miért létezik mégis mind a kettő?Vannak olyan helyzetek ahol az egyik hatékonyabb, mint a másik?
Még egy kérdés:A vektorokat és statikus tömböket is ugyanúgy kell törölni, mint a dinamikus tömböket?(delete[] tömb;)
A választ előre is köszönöm.
C++-ban szigorúan véve nincs olyan, hogy dinamikus tömb. Olyan van, hogy alapvetően statikus tömbökkel dinamikusnak viselkedést valósítunk meg. Ezt fontos észben tartani.
A kérdésre válaszolva: nem, a dinamikus tömb nem ugyanaz, mint a vektor. A vektor implementál egy dinamikus tömböt. Az, hogy dinamikus tömb, a C++ nyelvben nem egy konkrét típus, hanem egy amolyan nyelvi konstrukció. A vektor ugyanakkor egy osztály, ami megvalósítja magában ezt a nyelvi konstrukciót. A vektornak a konkrét tároló eleme egy dinamikus tömb, ezen felül viszont számos más dolgot tartalmaz, ismeri a saját méretét, gondoskodik a saját memóriafoglalásáról, törléséről, biztosít egy sor publikus függvényt, amin keresztül biztonságosan tudjuk módosítani, stb. A vektor egy komplett csomag, ami egyszerűen használható, és a színfalak mögött megvalósít egy dinamikus tömböt.
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!