- Külső 3,5'' mobil rack-ek topikja
- VR topik (Oculus Rift, stb.)
- A Battlefield 6-tal tenné vonzóbbá Core CPU-it és Arc GPU-it az Intel
- OLED TV topic
- Vezeték nélküli fejhallgatók
- Fejhallgató erősítő és DAC topik
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Milyen notebookot vegyek?
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Apple MacBook
Új hozzászólás Aktív témák
-
dobragab
addikt
válasz
MasterMark #3515 üzenetére
Szerintem EOF miatt, stringstream és fájl esetén máshogy lehet az EOF kezelés. EZT nézegesd.
Amúgy ez is szóba jöhet, ha mondjuk több beolvasás eredményét kell egyszerre ellenőrizned:
while(is.good()) {
// ...
}De ez csak tipp, pontosan nem néztem utána.
-
dobragab
addikt
válasz
MasterMark #3513 üzenetére
Jáj. Erre való az, hogy az istream tud bool-ra konvertálódni. Illetve C++98-ban nem is bool-ra, de úgy lehet használni, mintha. Ez más téma, és gány.
while (ss >> in){
// ...
} -
dobragab
addikt
válasz
MasterMark #3511 üzenetére
Elvileg ugyanúgy, elvégre mindkettő std::istream vagy std::ostream leszármazott.
-
jattila48
aktív tag
válasz
MasterMark #2955 üzenetére
Nincs ezzel baj. Itt nem lehet a break feltételt betenni a ciklusfeltételbe, mert break esetén kiírsz.
-
LordX
veterán
válasz
MasterMark #2955 üzenetére
if (egy[0].eleje > ketto[0].vege && !nemok) {
auto it = std::find_if( std::rbegin(ketto) //REVERSE begin (gondolom a db2 a 'ketto' konténer mérete)
, std::rend(ketto) //reverse end
, [&](auto&& elem) { return elem.vege < egy[0].eleje; } //keresett feltétel
);
if (it != std::rend(ketto)
kiiras(it->eleje, it->vege);
kiiras(egy[0].eleje, egy[0].vege);
} else { ... } -
jattila48
aktív tag
válasz
MasterMark #2934 üzenetére
Jó a break for ciklusban. A lineáris keresést csak példaként írtam. Ezek szerint neked az kell. Esetleg, ahogy írtam, a break feltételét (negálva) beépítheted a ciklusfeltételbe, és akkor nincs break.
-
jattila48
aktív tag
válasz
MasterMark #2911 üzenetére
Nem gáz a break. Egyszerű dolgot nem kell túlbonyolítani. Adott elemszámú tömbben lineáris keresésre tökéletes. Ha pl. az a feladat, hogy egy karaktertömbben sorban keresd ki az A betűket, akkor ez a legjobb megoldás. Ha függvényt használnál, akkor minden következő kereséshez nemcsak a tömböt, hanem a most megtalált indexet is át kell adni. Ez fölösleges bonyolítása a feladatnak. Ha nagyon nem akarsz break-et, akkor elképzelhető, hogy a kiugrási feltétel betehető a ciklusfeltételbe.
int i;
char tomb[100];
int hossz=sizeof(tomb);
for(i=0;i<hossz && tomb[i]!=feltetel;++i);
if(i<hossz){
//megtalaltad a kersett elemet, indexe i.
}for(i=0;i<hossz;++i){
if(tomb[i]==feltetel)break;
}helyett.
C++ programozóknál gyakori hiba, hogy hajlamosak "túldizájnolni" a programot. Egy ilyen egyszerű feladathoz pl. nem biztos, hogy az STL-t kell használni. Nagy, és lassabb lesz tőle a kód.
-
ToMmY_hun
senior tag
válasz
MasterMark #2917 üzenetére
Nem általános igazság, de egészen jól működik a következő. Amennyiben indexelned kell, akkor használj for ciklust, mert megoldja egy sorban az inkrementálást is. Akkor, ha egy feltétel teljesülésére vársz, akkor használj while-t. Egyébként ebből ne csinálj olyan nagy ügyet, használd azt amelyik az adott feladat ellátásra jobban átlátható, ésszerűbb.
-
válasz
MasterMark #2911 üzenetére
Nincs ilyen szabaly, hasznald azt a megoldast, ami az adott helyzetben leginkabb atlathato es legkonnyebben ertelmezheto.
-
válasz
MasterMark #2911 üzenetére
tömbben keresésnél kifejezetten ildomos (felesleges tovább iterálni).
-
MasterMark
titán
válasz
MasterMark #2903 üzenetére
Storno, megvan, csak késő van, szóval helyesen:
eredmeny[i] = tomb[i+1] - tomb[i];
Ú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!
- Külső 3,5'' mobil rack-ek topikja
- VR topik (Oculus Rift, stb.)
- A Battlefield 6-tal tenné vonzóbbá Core CPU-it és Arc GPU-it az Intel
- OLED TV topic
- Eredeti játékok OFF topik
- Futás, futópályák
- Gitáros topic
- Kertészet, mezőgazdaság topik
- Háztartási gépek
- Amazfit Balance - ár-érték egyensúly
- További aktív témák...
- Microsoft Surface Pro 6 fekete
- Utolsó 4 darab - Sennheiser MOMENTUM 4 fejhallgatók
- Xiaomi Redmi Note 10 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- HIBÁTLAN iPhone 13 mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3139, 95% Akkumulátor
- HIBÁTLAN iPhone SE 2020 64GB White -1 ÉV GARANCIA - Kártyafüggetlen, MS3099, 100% akkumulátor
Állásajánlatok
Cég: FOTC
Város: Budapest