Kezdőoldal » Számítástechnika » Programozás » A C++ tanárom szerint az...

A C++ tanárom szerint az std::vector mögött nem egy tömb áll, hanem csak egy összefüggően allokált memóriaterület. Ezek szerint akkor hülyeség azt állítani, hogy az std::vector mögött egy tömbb áll a háttérben?

Figyelt kérdés

2019. máj. 10. 12:11
 1/7 anonim ***** válasza:
A tömb is egy összefüggően allokált memóriaterületet foglal. C++03 óta kötelező is összefüggő területet allokálni az std::vectornak. Tehát egy tömb egy összefüggő memóriaterületen.
2019. máj. 10. 12:19
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
ezek a c++ tanárok eléggé alulképzettek
2019. máj. 10. 13:42
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:
De, az std::vector mögött egy tömb áll, ami egy összefüggően allokált memóriaterület. A csavar annyi a mezeő tömbökhöz képest, hogy a vector automatikusan kezeli a tömb méretezését, memória lefoglalását, felszabadítását, plusz biztosít egy kényelmes interface-t. Ennyi, ezen túl ugyanolyan tömb húzódik mögötte.
2019. máj. 10. 14:26
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:

Kérdés:

Mennyibe kerül megnézni a std::vector forráskódját és értelmezni azt? Így legalább megérted a működését.

2019. máj. 11. 12:10
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

#2-es válaszadó: "ezek a c++ tanárok eléggé alulképzettek"


Csak a buta embereknek vannak ilyen és hasonló gondolataik. ...mert, ha valamihez nem értenek, akkor másban keresik a hibákat!

2019. máj. 11. 22:54
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:
Nem hinném, hogy buta vagyok. De tapasztalataim azt mutatják, hogy ma a tanárok nagy része nem ért olyan szinten a szakmájához, ahogy kéne. Sokan átképeztetik magukat más szakról, mert nem tud elhelyezkedni az eredeti szakjával. És nem ez az első olyan kérdés, ahol a tanárok fura dolgokat mondanak. De abban is igazad van, hogy sok esetben a diák hülye. Egyébként kedves kritizáló, allokálj nekem adott méretű összefüggő memóriaterületet úgy, hogy az ne legyen tömb. (Elárulom, ha meg is tudod oldani ISO C++ban, nem lesz épp egy optimális kód, mert annál nincs egyszerűbb, hogy template t-re new T[10] vagy malloc(10*sizeof(T)). Mindkét eset tömb lesz. )
2019. máj. 12. 20:44
Hasznos számodra ez a válasz?
 7/7 A kérdező kommentje:

#4: Nem olyan könnyű azért azt értelmezni szerintem kezdőként. Allokátort definiál, de a kommentben meg array-ről ír.


// CLASS TEMPLATE vector

template<class _Ty,

class _Alloc = allocator<_Ty>>

class vector

: public _Vector_alloc<_Vec_base_types<_Ty, _Alloc>>

{ // varying size array of values


Visual Studioban jobb klikk az std::vectorra és go to definition. Ebben a fájlban találta:


C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\vector

2019. máj. 13. 09:39

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, 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!