Új hozzászólás Aktív témák
-
doc
nagyúr
válasz
Jhonny06 #1285 üzenetére
na azert ugy latom vannak itt eleg alapveto hianyossagok
szoval
az adatszerkezet (akar tomb, akar vector, akar valami mas) puszta adatszerkezet, ha ugy tetszik, egy darab a memoriaban, ami pont akkora meretu, amiben elfer az altalad megjelolt szamu es tipusu adat (osztaly, valtozo, stb)
ha te deklaralsz egy tombot pl. int tomb[10] akkor a memoriaban egy akkora darabot, amiben 10 int tipusu ertek elfer, lefoglal a program. de arrol, hogy ott azon a memoriateruleten mi van, semmit nem tudsz (illetve annyit, hogy 'hasznalhatatlan szemet'). neked kell azzal az adattal feltoltened, amit utana ki akarsz majd olvasni belole
ebbol adodoan a vector<Adatbazis> lista valtozod annyit mond, hogy ez egy olyan vector, amiben Adatbazis tipusu objektumok vannak, semmi tobbet. nyilvan neked kell belepakolnod az abban tarolni kivant objektumokat, maga az adatszerkezet nem fogja helyetted kitalalni hogy mit akarsz belerakni...
raadasul teljes objektumpeldanyt (nalad Adatbazis) nem tarolunk sem tombben, sem mas adatszerkezetben, helyette az arra mutato pointert szokas (tehat vector<Adatbazis*> lista)
a feltoltesnel meg nyilvan neked kell minden elemet hozzaadnod, a pointer eseteben a new-val letrehozva
a vector eseteben a resize() csak annyit mond, hogy szerinted mi a maximalis darabszam, amit bele fogsz rakni, ennek megfeleloen optimalizal, ettol fuggetlenul akar kevesebb, akar tobb elem is lehet benne
tehat ha te akarsz egy vectort amiben 10 darab Adatbazis objektum van, akkor csinalsz egy ilyet:
for (int i=0; i<10; ++i)
lista [i]= new Adatbazis();es amikor mar nem kellenek, pl. a destruktorban meg is szunteted az ojjektumokat (ez nem C#, nincs garbage collector!)
for (int i=0; i<10; ++i)
delete lista[i];ez utobbi persze szebb egy olyan megoldassal, amiben nem tarolod elore az elemek darabszamat, hanem vegigmegy a teljes listan annak meretetol fuggetlenul es kitorli mindegyik elemet
kerdezni meg mindenki szokott az elejen, sot a kozepen is
ezen ne aggodj, ha normalis hangnemben kerdezel (mint ahogy eddig is tetted) szivesen segitunk
MOD: ha a listat visszaado metodust csinalsz, figyelj arra hogy ne magat a listat, hanem arra mutato referenciat adj vissza, hogy ne kelljen feleslegesen egy csomo adatot a verembe pakolni/kivenni
tehat nem vector<Adatbazis*> addide() {return lista;} hanem const vector<Adatbazis*>& addide() const {return lista;}
a const ne zavarjon meg, nem feltetlenul muszaj, de erdemes raszokni a hasznalatara
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- BESZÁMÍTÁS! MSI B450 R3 3100 16GB DDR4 512GB SSD 750GB HDD GTX 1050Ti 4GB ZALMAN ZM-T7 Chieftec 400W
- BESZÁMÍTÁS! MSI B450 R5 5600X 16GB DDR4 512GB SSD 1TB HDD RX 5700 XT 8GB ZALMAN S3 TG Chieftec 600W
- GoPro Chest Mount
- BESZÁMÍTÁS! ASUS B760M i7 13700K 32GB DDR4 512GB SSD RX 6800 16GB Zalman Z1 Plus Corsair 750W
- BESZÁMÍTÁS! MSI B450 R7 5700X 32GB DDR4 512GB SSD RTX 3070 Ti 8GB Zalman Z1 Plus Corsair 750W
- Keychrone Q1 V2 billentyűzet / Számla / Garancia /
- AKCIÓ! Intel Core i9 14900K 24 mag 32 szál processzor garanciával hibátlan működéssel
- HIBÁTLAN iPhone XS Max 64GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS2898, 100% Akkumulátor
- LG 34GS95UE - 34" Ívelt OLED / QHD 2K / 240Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- Dell P2419H / P2419HC Full HD LED IPS 24" LCD monitorok
Állásajánlatok
Cég: FOTC
Város: Budapest