- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Google Pixel topik
- Műholdakkal is beszélgethet a Redmi Note 15 Pro+
- Samsung Galaxy S25 - végre van kicsi!
- iPhone topik
- Ezek az új Google Pixel cuccok hivatalos magyar árai
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Xiaomi 15 - kicsi telefon nagy energiával
- Realme GT 2 - aláírjuk
Új hozzászólás Aktív témák
-
válasz
Ron Swanson #4165 üzenetére
"Kis mennyiségű adatnál szépen le is fut, de ha mondjuk N = több ezer, akkor nem fut le 0,2s alatt...
"
Ó, hát erre egyszerű a megoldás, a lista tetejéről válassz valamit: [link]
Komolyabbra fordítva a szót, az a gondod, hogy kb. a vendégek számának négyzetével nő az elvégzendő számítások mennyisége. A megoldás az, ha találsz ennél kisebb ordójú algoritmust. Első blikkre ilyen lehet az, ha a vendégeket nem direktben hasonlítod össze egymással, hanem az időintervallummal machinálsz.
Például csinálsz egy listát, amiben olyan elemek vannak, amik állnak egy időpontból, a már ott lévő vendégek számából és az abban az időpillanatban érkezett vendégek számából és simán ezen a listán mész végig minden egyes vendégre.
Ez egyébként továbbra is algoritmikus kérdés, nem C++ - specifikus.
Hogy ontopic legyek, a C++ kódod valami egészen rettenetes és elavult, szóval fogadni mernék, hogy ezt a magyar (felső)oktatás keretében tanultad
, szerintem azt is érdemes jobb átnézni:
1. TVendegek:
Minek az a T? Most komolyan? Mitől lesz bárkinek is jobb attól, hogy az összes osztály neve T-vel kezdődik, mint "type" (sőt, "típus"). Szóval legyen inkább Vendegek.
Miért Vendegek? Egyetlen vendég adatait tárolja, nem többét, szóval legyen inkább Vendeg.
És persze kódot szigorúan angolul írunk, szóval a végleges változat az a Guest.2. erkezes / tavozas
Ha már név: itt pont van értelme annak, hogy jelöljük, hogy ezek adattagok, szóval m_arrive, m_leave
Adattagokat csak kivételes esetben érdemes kirakni publikba, ez meg semmiképpen sem az, szóval legyenek csak private-ok (és a private tagokat érdemes a publicok mögé rakni, mert így jobban olvasható a kód: az elején ott van a mindenkit érdeklő rész, a class API-ja, az implementáció meg elfér hátul).3. TVendegek(const int E, const int T):
A constok itt elég feleslegesek (érték szerit átadott primitívekről van szó), a nevek meg lehetnek nyugodtan beszédesek, a C++-ban a scope-ok miatt az is tök jól működik, hogyC::C(int x) : x(x) {}
De mivel a tagok neve pont az előbb kapott egy m_ előtagot, amúgy se lenne névütközés legyen inkábbGuest(int arrive, int leave)
....
és most mennem kell, majd folytatom, addig a többiek úgyis belekötnek abba, amit írtam
Ú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!
- Milyen belső merevlemezt vegyek?
- Leégett az első Radeon a hírhedt 12V-2x6 tápkonnektorral
- TCL LCD és LED TV-k
- Kínai és egyéb olcsó órák topikja
- Ízléses lett a Drop kompakt, vezeték nélküli klaviatúrja
- Bluetooth hangszórók
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Hardcore café
- Vezetékes FEJhallgatók
- Kettő együtt: Radeon RX 9070 és 9070 XT tesztje
- További aktív témák...
- Acer, notebook, laptop, Ryzen 5 5500u, 16gb ddr4, 1tb ssd, 15.6 col
- Eladó 3. generációs I7-es számítógép
- ASUS ROG STRIX 850W 80 PLUS Gold - Garancia 2033.05.04
- Új Lenovo 14 Ideapad 5 FHD IPS i5-1235U 4.4Ghz 10mag 16GB 512GB SSD Intel Iris XE Win11 Garancia
- AMD Ryzen 7 5800X3D 8-Core 3.4GHz - AQUA garancia 2026.04.20
- Xiaomi Redmi Note 11 Pro+ 128GB, Kártyafüggetlen, 1 Év Garanciával
- Új Dell 13 Inspiron 5310 FHD+ IPS i5-11300H 4.4Ghz 8GB 256GB Intel Iris XE Graphics Win11 Garancia
- Eladnád a telefonod? KÉSZPÉNZES OKOSTELEFON FELVÁSÁRLÁS azonnali fizetéssel!
- Xiaomi Redmi 9AT 32GB, Kártyafüggetlen, 1 Év Garanciával
- AKCIÓ! Dell Latitude 5550 notebook - Intel Ultra 7 165U 16GB DDR5 RAM 1TB SSD Intel Graphics WIN11
Állásajánlatok
Cég: FOTC
Város: Budapest