Új hozzászólás Aktív témák
-
-
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...
-
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"); -
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!
- GAMER Asus ROG NVIDIA 6gb dedikált / i7-10750h / 16gb ram / 500gb ssd / MAGYAR rgb bill / win11
- Prémium Lian Li O11 Gamer/Workstation PC - Ryzen 9 5950X, RTX 4070 Super, brutális teljesítmény
- Lenovo ThinkPAD 15 GEN2 / Intel core i5-11generáció / 16gb DDR4 ram / 512gb NvMe SSD / WIN11
- LOQ 15IRX9 15.6" FHD IPS i7-13650HX RTX 4050 16GB 512GB NVMe magyar vbill gar
- Újszerű Apple Macbook Air 13 - M2 - 8/256GB (MLY33MG/A) éjfekete - 24 Ciklus - 100% akkumulátor- HUN
- Lenovo T14 Thinkpad Gen3 WUXGA IPS i5-1245U vPro 10mag 16GB 512GB Intel Iris XE Win11 Pro Garancia
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5060Ti 16GB GAMER PC termékbeszámítással
- Poseidon D60 Dolby Atmos hangprojektor távirányító nélkül / 12 hó jótállás
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB DDR5 RTX 5060 8GB GAMER PC termékbeszámítással
- ÚJ MSI CYBORG 15 A13VF - 15.6"FHD 144Hz - i5-13420H - 16GB - 512GB - Win11 - RTX 4060 -3 év garancia
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi
![;]](http://cdn.rios.hu/dl/s/v1.gif)

