Új hozzászólás Aktív témák
-
-
sztanozs
veterán
válasz
daninet #4412 üzenetére
Amit tudsz csinalni az az, hogy eltarolod az utolso erteket az epromban es a kovetkezo inditaskor azt hasznalod seednek... mondjuk ez eleg gyorsan le tudja gyilkolni az epromot, de ha van egy barmi mas (irast jobban turo) perzisztens memoriad, akkor az mar jobb lehet...
-
opr
nagyúr
válasz
daninet #4343 üzenetére
Amit a tobbiek irtak, plusz annyit tennek hozza, hogy sprintf helyett en std::string+std::regex+std::regex_replace-el operalnek.
Picit lassabb, az teny, cserebe sokkal atlathatobb, olvashatobb, konnyebb modositani es megerteni, es ebben a kodban ugyse ez lesz a sok ido/szuk keresztmetszet, azt a +1ms-et, ami a nativ char helyett string operation lesz siman bealdoznam a szebb es erthetobb kod erdekeben.szerk: Most csak fejbol idegepeltem, nem vagyok benne 100% biztos, hogy ez igy fordul, de a lenyeg stimmelni fog:
#include <regex>std::string daFox =R("The quick REPLACE_ME_SENSEI fox...");
daFox = std::regex_replace(daFox, std::regex("REPLACE_ME_SENSEI"), "brown"); -
dabadab
titán
válasz
daninet #4343 üzenetére
Úgy nézem, hogy igen.
Én ennyit változtatnék rajta, ha már tulajdonképpen az if feltételei között impliciten szóba került, hogy az autofile_indexnek akár 10 feletti értéke is lehet (és akkor ez lekezelné azt is, meg rövidebb is):if (autofile_index >= 10)
autofile_index = 1;
else
autofile_index++; -
PandaMonium
őstag
válasz
daninet #3947 üzenetére
Állásinterjúra még ne menj vele, de két hét után nem rossz.
Pár apró meglátás, javaslat:
- Printf-et felejtsd el, használd a streameket
- Rand, srand függvényeket szintén felejtsd el, van C++11 óta <random> és szuper(komplikált) randomszám generátor osztály
- Goto-kat függvényhívásokra nagyon egyszerűen ki tudod cserélni
- Olyat nem csinálunk, hogyif (minden_rendben) {} else { hibakezeles; }
, hanem negáljuk a feltételt:if (!minden_rendben) { hibakezeles; }
- Pastebin helyett jobb a Github Gist-je, főleg ha több fájlban van a kódod
- Nagyon hasznos volna újraírnod a mostani kódot objektum-orientált stílusban, osztályokat használva, sokat tanulnál belőleHa lesz újra gépem (valszeg péntek) és szeretnéd megírom neked szépen, modern C++ban, hogy lásd a különbséget és tudj belőle tanulni.
-
PandaMonium
őstag
válasz
daninet #3931 üzenetére
Cpp.sh-n kipróbáltam, működik és megáll az elsőnél. Persze az Linux-on fordít GCC-vel.
I/O streamek kezelése mindig macerás, főleg az input kezelés. Sokszor a terminál/shell bufferelni az inputot Linux alatt is, Windows-on pedig külön egy macera az egész.A do-while ciklusodat próbáld meg kicserélni erre a 3 sorra:
cout << "\nGuritashoz nyomj Entert...";
cin.clear();
cin.ignore(10000,'\n');És a \n helyett érdemesebb
std::endl
-t használni cout-ra íráskor az új sorhoz, ez platform független. Arra viszont figyelj, hogy ilyenkor flusholja a streamet, szóval performance hit lehet ha nem jól használod. -
b.kov
senior tag
válasz
daninet #3925 üzenetére
Nem-nem, az std konténereknek pont ez a feladatuk, hogy helyettesítsék a régi tömböket.
Nagyobb a választék, feladatonként eltérően tudsz dönteni közülük, hogy melyik számodra éppen a legoptimálisabb.
Sok esetben nem kell a memória allokálásával, deallokálásával foglalkoznod.
Sok jó setter/getter műveleteik vannak, és működnek rájuk az std algoritmusok.Szóval ha van egy kis időd, nagyon érdemes rájuk szánni.
Érdemes esetleg itt kutakodni. -
b.kov
senior tag
válasz
daninet #3923 üzenetére
Beolvasod az N-et, aztán indítasz egy ciklust, ami N-szer fog lefutni. A ciklusmagban pedig szépen belepakolod a vectorba a beolvasott értéket, hiszen az egy tároló, amivel a tömböt helyettesíted.
Nagyon egyszerűen:
#include <iostream>
#include <vector>
int main(int argc, char** argv)
{
int N; // jatekosok szama
std::cin >> N;
std::vector<std::string> names;
for(int i = 0; i < N; ++i)
{
// beolvasas
std::string tmpName;
std::cin >> tmpName;
// vektorba iras
names.push_back(tmpName);
}
return 0;
}
Ú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!
- PROHARDVER! feedback: bugok, problémák, ötletek
- Samsung Galaxy S23 Ultra - non plus ultra
- Ez lenne a népkártya? Teszten a GeForce RTX 5060 Ti 16 GB
- Változó design, tekerhető lünetta: megjött a Galaxy Watch8 és a Classic
- Notebook / laptop alkatrészek cseréje (processzor, RAM, HDD)
- Kuponkunyeráló
- ASUS notebook topic
- Medence topik
- Filmvilág
- Autós topik
- További aktív témák...
- LG 45GS95QE - 45" Ívelt OLED / 2K WQHD / 240Hz 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
- HP 200W (19.5V 10.3A) kis kék, kerek, 4.5x3.0mm töltők + tápkábel, 928429-002
- Bomba ár! Dell Latitude E5450 - i5-5GEN I 8GB I 500GB I 14"FHD I HDMI I Cam I W10 I Gari!
- BESZÁMÍTÁS! Lenovo Legion 5 17ACH6H Gamer notebook - R7 5800H 16GB DDR4 512GB SSD RTX 3060 6GB WIN11
- Microsoft Surface Laptop 3 - 15 col - Fekete
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest