Hirdetés
- Magga: PLEX: multimédia az egész lakásban
- leslieke: leslieke farmerzsebe
- laca223: Miért győz a kollektív meggyőződés akkor is, ha saját magát teszi tönkre?
- GoodSpeed: Munkaügyi helyzet Hajdú-Biharban: észak és dél
- laca223: A civilizáció mint bugos operációs rendszer
- Gurulunk, WAZE?!
- Toomy: FOXPOST régen jó volt, de ma már jobban jársz ha elfelejted.
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- sh4d0w: Árnyékos sarok
Új hozzászólás Aktív témák
-
dobragab
addikt
válasz
ToMmY_hun
#3223
üzenetére
Jó irányba tapogatózol, a template a megoldás. Amit te keresel, az az std::vector. Mindent tud, ami neked valaha kelleni fog dinamikus tömb szintjén. Egyrészt tud automatikusan megnyúlni (push_back), viszont előre is le tudja foglalni a memóriát, és nem kell nyújtózkodnia, ha konstruktorparaméterként adod neki a darabszámot, vagy reserve-ölsz. Természetesen ezután is tud megnyúlni.
Túl jávásan gondolkozol. Egyrészt teljesen felesleges nekik ősosztály, anélkül is lehet különböző típusokat megetetni egy generikus algoritmussal: erre való a template. Másrészt a get helyett C++-ban illik indexelő operátort használni.
std::vector<int> vec(100); // 100 darab helyet lefoglal előre,
// de nem tölti fel, egy darab int sem kerül bele
vec.push_back(1); // belekerült az első elem
for(int i = 0; i < vec.size(); ++i)
std::cout << vec[i];Egy generikus algoritmus lényege a duck typing: minden, ami úszik, és hápog, az kacsa. Másképp: az alábbi algoritmus bármilyen típust tartalmazó vector-ral működni tud, aminek van rendes (std::ostream-et visszaadó) << operátora. Ha te ezt meghívod std::vector<int>-ekre, akkor a fordító fordítási időben legenerálja neked a print<int>-et, mert az int úszik és hápog (van << operátora).
template<typename T>
void print(std::vector<T> const& vec)
{
std::cout << vec(i) << ' ';
}
Ú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!
- NVIDIA® driverek topikja
- Linux Mint
- Az Enermax tényleg nem viccel, ha az új tápjának garanciaidejéről van szó
- Kábel nélkül a Sapphire VGA-val
- Milyen billentyűzetet vegyek?
- Nintendo Switch 2
- PlayStation 3
- Lakáshitel, lakásvásárlás
- Dell asztali gépek
- AMD Navi Radeon™ RX 9xxx sorozat
- További aktív témák...
- Lenovo ThinkPad X13 G2 13.3" -50% AMD Ryzen 5 Pro 5650U Hexa-core 16GB 512GB SSD FHD
- Gaming PC - R5 9600X,RTX 5070 12GB,32GB DDR5,1TB NVMe,850W
- Ultra PC - R7 7800X3D,RTX 5080 16GB,32GB DDR5,1TB NVMe,1200W
- Uhh Lenovo ThinkPad P15 G2 Tervező Vágó Laptop -75% 15,6" i5-11500H 32/1TB RTX A2000 4GB /1 Millió/
- Lenovo Legion 5 15ARH05H - Gamer Laptop
- Lenovo ThinkPad T14s Gen 3 i5-1245U 14" FHD+ 16GB 1TB 1 év teljeskörű garancia
- BESZÁMÍTÁS! Asus Z390 i7 8700K 16GB DDR4 512GB SSD RX 7600 8GB Rampage SHIVA Corsair 550W
- HIBÁTLAN iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3828
- CSX 2x2GB (4GB) DDR2 800 MHz kit
- HIBÁTLAN iPhone XS Max 64GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS2898
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

