- sh4d0w: Netflix? Ugyan, VW előfizetés!
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- LordAthis: AI Kérdés érkezett - 3600 soros Spagetti kód refaktorálása és budget
- Elektromos rásegítésű kerékpárok
- eBay-es kütyük kis pénzért
- Tutti Georg: A Microsoft 2025. augusztusi biztonsági frissítései hibásak
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- GoodSpeed: Bye PET Palack, hello SodaStream
- sziku69: Szólánc.
Új hozzászólás Aktív témák
-
PandaMonium
őstag
válasz
m.zmrzlina #3905 üzenetére
Ettől általánosabb ha ahogy javasolták is, funktorokat használsz.
bool novekvo(float elso, float masodik)
{
return elso < masodik;
}
int cseres(float tomb[],int meret, const std::function<bool(float, float)>& feltetel)
{
float temp=0;
for (int i=0;i<meret-1;i++)
{
for (int j=i+1;j<meret;j++)
{
if(feltetel(tomb[j], tomb[i]))
{
temp=tomb[i];
tomb[i]=tomb[j];
tomb[j]=temp;
}
}
}
return 0;
}Itt a cseres függvény harmadik paramétere egy olyan funktor ami bool visszatérési értékű, és két float paramétert fogad. Ilyen pl. a novekvo függvény ami felette van definiálva. Tehát az a függvény hívás, hogy
cseres(tombom, tombom_merete, novekvo);
teljesen valid.
Pár megjegyzés még, mert írtad, hogy most tanulod a nyelvet:
- C stílusú (float[], int[], stb.) tömböket ne használj, akkor sem ha ezt látod tutorialokban vagy ezt oktatják egyetemen. Modern C++ban ha folytonosan szeretnénk tárolni valamit a memóriában (ahogy a tömb is semmi más mint egy folytonosan allokált memóriaterület) és fordítás időben (azaz a program írásakor, nem futtatáskor) tudjuk mekkora tömb kell nekünk akkor std::array-t használunk, egyébként, ha dinamikus méretű tömbre van szükségünk akkor std::vector -t.
- Jelenleg a kódod csak egy adott típusú tömbre (float) fog működni. Ha template függvényt csinálsz belőle kirakhatod ezt a típust template paraméterbe és akármilyen típusra fog működni - itt persze feltétel lesz, hogy a funktor is ennek a típusnak két példányát fogja fogadni.
- Nincsen kőbe vésve, de konvenció, hogy ha egy konténer két elemét hasonlítjuk össze akkor az az elem kerül az összehasonlítás bal oldalára ami előrébb van a konténerben. Ennek egy logikai összehasonlításkor nincs sok jelentősége, mert legfeljebb megfordítod az operátort (
(a > b) == (b < a)
), de pl. ha funktoroknak adod át a paramétereket akkor fontos, hogy a funktor milyen sorrendben várja az elemeket.
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Asus ROG Strix Flare II Animate Gamer Billentyűzet - Magyar kiosztás
- Lenovo 14 Ideapad 3 FHD LED Matt i3-1115G4 4.1Ghz 8GB 256GB SSD Intel UHD Graphics Win11 Garancia
- 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
- BESZÁMÍTÁS! ASRock B550M R5 5600 32GB DDR4 512GB SSD RTX 4060 TI 16GB Zalman N5 Chieftec 700W
- Bomba ár! Dell Latitude 7390 - i7-8GEN I 16GB I 256GB SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Bomba ár! Dell Latitude E6540 - i7-4800MQ I 16GB I 500GB I Radeon I 15,6" FHD I Cam I W10 I Gar
- Bomba ár! Fujitsu LifeBook U939x- i5-8GEN I 8GB I 256SSD I 13,3" FHD Touch I HDMI I Cam I W11 I Gari
- Eladó szép állapotban levő Apple iPhone 8 Plus 64GB / 12 hónap jótállás
Állásajánlatok
Cég: FOTC
Város: Budapest