- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- btz: Internet fejlesztés országosan!
- Magga: PLEX: multimédia az egész lakásban
- sellerbuyer: ScreenX technológia élmények az Arénában
- GoodSpeed: Megint 3 hónap Disney+ akciósan :)
- sh4d0w: Tele a hócipőm
- Argos: Az vagy, amit megeszel
- bitblueduck: RTX 50-es széria PhysX támogatás nélkül. Tényleg akkora probléma?
Új hozzászólás Aktív témák
-
caddie
csendes tag
Azt hiszem, hogy a problemak egy reszet mar leirtak, en meg javasolnek 1-2 dologt:
- nagyon nem illik a headerekbe a using namespace std;-t beleirni
- a standard konyvtar definial egy vector template osztalyt, majdnem azonos neven
- a kiiro operator definialasakor te igazabol egy free (''globalis'') fuggvenyt definialsz, amely egyik parametere template osztaly. ebbol kifolyolag az altalad definialt kiiro operatornak is templatenek kell lennie (alatta ki is van kommentezve)
- konstruktoroknal erdemes hasznalni az inicializalasi listat (ezzel kikerulheto a telejsen felesleges default konstrualas es az ezuatni ertekadas)
- unsigned int-ek helyett, erdemes hasznalni az STL-hoz hasonloan a size_t tipust
- ertekado operatorok tipikusan T& ternek vissza a lancbafuzes tamogatasa miatt, de persze lehet, neked pont az volt a celod, hogy ilyen dolgokat ne engedj meg
- mivel letezik a vektor meretenek lekerdezesere kialakitott interface (size()), ezert velemenyem szerint felesleges a kiiro template operatort friendkent deklaralni
- a NULL nem szabvanyos! nullat hasznalj helyette
- a copy konstruktort biztos igy akartad csinalni?
{
Vector<int> a;
// a-t feltoltod elemekkel
Vector<int>b(a);
}
// megsemmisul a, felszabadul a.pData;
// felszabadul(na) b.pData;
// de mivel a.pData == b.pData ami mar megsemmisult,
// ehelyett katasztrofa lesz
// alternativ eset
a.clear(); // felszabadul a.pData (b.pData is oda mutat)
b[5];
// szerencses esetben elcrachel a programod
// peches esetben pedig fut tovabb csak hulyeseg irodik ki
// megpechesebb esetben jo irodik ki
// klasszikus undefined behaviour
- copy konstruktor egyertelmuen hibas
- assert.h helyett majd inkabb cassert-et hasznald
- erase eseten, ha egy elemed volt akkor -1-re alitod az elemenNum-t
- postfix increment / decrementalas helyett erdemes a prefixet hasznalni (ahol persze azonos a ketto funkcionalitasa)
- erase eseteben a torlendo elem kihagyasa nem tul elengas, sott gyanus, hogy a for ciklusnal a ciklusfeltetel tulindexelest fog eredmenyezni
- insert-nel erdemes lenne const T& -et atadni
- ennek nem latom sok ertelmet:
if(elementNum==UINT_MAX)
{
return false;
}
de ha mar ilyenekre figyelsz, akkor erdemes lenne inkabb a C++ std altal biztositott dolgokat hasznalni, tovabba inkabb a new sikeres memoriafoglalasat ''leellenorizni''* (bar egy beadando eseteben egyiknek sincs tul sok jelentosege)
* erdemes eszrevenni, hogy alap esetben std::bad_alloc exceptiont dob, de nothrow-os valtozat hasznalataval ra lehet venni arra is, hogy nullpointert adjon vissza sikertelen foglalas eseten
- insertnel megint az kell, hogy modnjam, hogy ez nem tul elegans modja az elem beszuarasanak
- insertnel ha pos > mint az aktualis vektor merete, akkor ne egyenkent toltsd fel nullaval, hanem default konstruald nullaval inkabb
- insertnel nem latom pontosan, hogy miert pos + 1 meretu tombot foglalsz
- [] operator eseteben az az altalanos STLes megkozelites, hogy [] nem ellenoriz indexhatarokat, csak at teszi azt, igy az at fuggvenyt a [] segitsegevel valositjak meg.
- eddig sem lattam sok ertelmet az asserteknek, az amlitett dolgok nem olyan hibak amiert le kene shutdownolni az egesz programot, de ertekado operator eseteben egyenesen a jozan esz ellen megy. Abban az esetben inkabb egy return *this; kellene, amennyiben onertekadasrol lenne szo
Igy elso atfutasra en ezeket a furcsasagokat vettem eszre, nehany kozulok talan csak sznobizmus, de azert akadt kozottuk par tervezesi hiba es eletveszelyes undefined behaviour is.
[Szerkesztve]
Ú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!
- Eladó gyönyörű Apple Watch Ultra LTE Cellular+GPS modell , 87% akksi + extra Spigen tok.
- GAMER INTEL CORE I5 14600K/32GB DDR5/RTX 3080 10GB/1TB NVME SSD/
- ÚJ Samsung 65" Neo QLED 4K QN90F Vision AI Smart TV (2025) QN70F QN80F QN85F 3év
- ZOTAC GeForce RTX 4070 Ti SUPER Trinity Black 16GB GDDR6X videokártya
- Apple Watch Series 9 - 45mm - Cellular
- HP Omen 80G8E9 - 27" IPS - UHD 4K - 144Hz 1ms - NVIDIA G-Sync - FreeSync - HDR 400 - USB Type-C
- Samsung Galaxy S23 Ultra 256GB Kártyafüggetlen 1Év Garanciával
- Honor 90 Lite 256GB, Kártyafüggetlen, 1 Év Garanciával
- HIBÁTLAN iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3337, 94% Akkumulátor
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest