- Apple Watch
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Google Pixel topik
- A ZTE sem maradt adós csúcstelefonnal
- Poco F7 – bajnokesélyes
- Yettel topik
- Samsung Galaxy S24 - nos, Exynos
- Szakított a OnePlus és a Hasselblad
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- One mobilszolgáltatások
Ú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!
- Apple Watch
- Nagyrobogósok baráti topikja
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Google Pixel topik
- Lexus, Toyota topik
- Arc Raiders
- Interactive Brokers társalgó
- Kínai és egyéb olcsó órák topikja
- A ZTE sem maradt adós csúcstelefonnal
- Mibe tegyem a megtakarításaimat?
- További aktív témák...
- Samsung Galaxy S22 128GB,Átlagos,Adatkabel,12 hónap garanciával
- Samsung Galaxy A16 / 4/128GB / Kártyafüggetlen / 12Hó Ganacia / BONTATLAN NULL Perces!
- Lenovo ThinkPad P15 Gen 1 Intel i7-10875H 32GB 512GB Nvidia Quadro RTX 3000 1 év garancia
- ÚJ ÁRU 10.22.!!! HP üzleti laptopok Elitebook, Probook, Zbook 4-13. gen gar.
- BESZÁMÍTÁS! GIGABYTE X570 AORUS ELITE X570 alaplap garanciával hibátlan működéssel
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő



