- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Súlyos adatvédelmi botrányba kerülhet a ChatGPT az EU-ban
- Synology NAS
- Google Chrome
- Aliexpress tapasztalatok
- DIGI internet
- Facebook és Messenger
- Crypto Trade
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Microsoft Excel topic
Új hozzászólás Aktív témák
-
Gyuri16
senior tag
ha jol ertem olyat akarsz, hogy egy leforditott programban elerhetoek legyenek kepek, adatok anelkul hogy mas fajlokat kellene masolgatni, tehat minden benne legyen az exeben. ez esetben ajanlom a resource file-okkal valo megismerkedest, ami pont ezt csinalja. vs tapasztalatom nincs, de itt egy link kezdesnek: [link].
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
nem annyira c++ programozos kerdes, de ide illik inkabb:
most kezdek c++-ban programozni, es ezt vimben teszem. masik topicban mar kaptam helpet ctags-rol, ami nagyjabol mukodott is c-ben. most viszont osszeveszik a omnicppcompletion pluginnal (auto completion). az utobbinak ilyen tags generalast hasznalok: ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
ha ezt hasznalom akkor a completion mukodik, de a fajlban ugralas nem (ctrl+], ctrl+t). ha csak ctags -R * hasznalok akkor pedig az ugralas mukodik de a completion nem. valaki tud ezzel segiteni?Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz sghc_toma #709 üzenetére
valami ilyesmit ajanl:
ctags -o./_tags -R --c++-kinds=+p --fields=+iaS --extra=+q \
--languages=c,c++,c#,python,vim,html,lua,javascript,uc,math \
--langmap=c++:+.inl,c:+.fx,c:+.fxh,c:+.hlsl,c:+.vsh,c:+.psh,c:+.cg,c:+.shd,javascript:+.as ..
nekem igy se mukodik.egyelore jobb otletem nincs, mint meghekkelni az omnicpp plugint, valahogy ugy, hogy legyen ket kulon tags file (egyik a completenek a masik az ugralasra), es ravenni, hogy mielott kidobja a talalatokat allitsa at a tags valtozot.
lehet majd kesobb megnezem, most a c++ leckemet kellene csinalnomNem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main() {
time_t t;
time(&t);
struct tm * tt = localtime(&t); // feltoltjuk a tm structot
// kiszamoljuk az ertekeket a struct leirasa alapjan
int year = 1900 + tt->tm_year;
int month = 1 + tt->tm_mon;
int day = tt->tm_mday;
stringstream ss; // Int -> String konverziohoz
ss << year << '.'; //Ev
if (month < 10) { // 1 helyett 01 legyen
ss << 0;
}
ss << month << '.'; //Honap
if (day < 10) {
ss << 0;
}
ss << day << '.'; //Nap
string datum = ss.str(); //stringet csinalunk belole
cout << datum << endl;
return 0;
}most vettem csak eszre, hogy char tombot hasznalsz, szoval akkor meg stringbol csinalni kell egy char[]-t, pl igy:
char d[12];
strcpy(d, datum.c_str());
(strcpynek a string.h include kell)
vigyazz mert a te kododban csak 11 byteot foglalsz le a datumnak, de az 12 byteot foglal (a null byte a vegen)Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz icespeak #849 üzenetére
az Eltol fuggvenynek az u es k valtozokat ertek szerint adod at, igy aztan nem kapod meg bennunk a vart eredmenyt. Probald meg inkabb azokat referenciaval atadni (a,b helyett)
amugy az eltolasnak nem a pont private x,y valtozoit kellene eltolnia? akkor a kiirnak se kellene parameter. nem ertem mire kell az u,k
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
tobbnyire nem szokjuk csak ugy megirni mas feladatat. konkret kerdesnel biztos kapsz segitseget, de ez igy keves. mi az amit meg tudsz csinalni, es mi az amit mar nem?
nagy vonalakban:
beolvasod a versszakot egy stringbe
vegigmesz a string osszes indexen, es megszamolod hany betu/maganhangzo van (itt ellenorizni kell, hogy ne szokoz, vagy irasjel legyen, es kulon figyelni kell a maganhangzokra)
kozben szamolod az egyes betuk darabszamat is, ha hasznalhatsz stl algoritmusokat, akkor nagyon egyszeruen pl egy map-ban eltarolhatod oket (betu -> darabszam alakban). ha nem akkor tombot hasznalhatsz, amit a betukkel indexelsz (atalakitva szamokka)Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
char-ba nem kellene ekezetes es egyeb fura betuket tomni, probald meg kiiratni a maganhangzos tombodet (nalam a fordito figyelmeztet is, hogy tobb bajtos ertekeket akarsz charba tenni). ez lehet az egyik ok, hogy rossz ertekeket kapsz.
a ket int tombodet nem inicializalod, pedig jo lenne nullazni, mivel ilyenkor nem definialt a tartalma (ismet probald kiiratni a tombot es meglatod, hogy fura ertekek vannak benne)
getline egy sort olvas be. a verset soronkent olvashatod egy ciklusban legfeljebb 8-szor vagy addig amig ures bemenetet kapsz.
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
1. a konstruktor prototipusa es maga a fuggveny nem egyforma. feleslegesen van ott a double sugar parameter, ha aztan ugyis a felhasznalotol olvasod be
2. a konstruktor vegen a return hiba
3. a kepletben nem vesszot, hanem pontot kell hasznalni tizedesjelkent, raadasul maga a keplet is rosszezeket a hibakat a fordito is latja, erdemes ra hallgatni..
mod:
4
ezt igy hogy?
int main(double sugar)
oda argc es argv valo, nem akarmilyen parameter
5. system("pause");
ez csunya dolog, impotenciat okoz, ne hasznald
6. a main vegere egy return 0;[ Szerkesztve ]
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
segitseget kernek pointerek vs operator overloading temaban. egy fa adatstrukturat csinalok, ahol minden node-nak lehet valamennyi pointere a gyerekeire. ezt egy vector<Node*> segitsegevel kepzeltem. elore kell lefoglalni a kontruktorban megadott szamu pointernek a tombot (akkor is ha null lesz csak az erteke) es fokozatosan hozzaadni a gyerekeket (tudom, hogy lehet jobban is, azt kesobb csinalom. a feladat osszehasonlitani a kulonbozo megoldasokat). szeretnek a Node osztalynak egy [] operatort, amivel a gyerekekhez pointerekkent lehetne hozzaferni. egyelore mindig referenciakkal csinaltam hasonlot,megmutatom mire jutottam:
class Node {
public:
int sigma;
// Node** child;
vector<Node*>* child;
int value;
Node(int sigma);
~Node();
Node& operator[](const int index);
};
Node& Node::operator[](const int index) {
return *(*child)[index];
}
Node::Node(int sigma): sigma(sigma), value(0) {
/* child = new Node *[sigma];
for (int i = 0; i < sigma; i++) {
child[i] = NULL;
}*/
child = new vector<Node*>(sigma);
}
Node::~Node() {
/* for (int i=0; i < sigma; i++) {
if (child[i] != NULL) {
delete child[i];
}
}
delete [] child;
*/
for (vector<Node*>::iterator it = child->begin(); it < child->end(); ++it) {
delete *it;
}
delete child;
}ami a kommentarokban van, az a regi megoldas tombokkel ami mukodik is jol, olyat szeretnek csak vectorral es operatorral, tehat ami eddig n->child[i ] volt az legyen n[i ] .
ezt az osztalyt kesobb szeretnem igy hasznalni:
Node n = new Node(10);
Node n[0] = new Node(10);
stb..remelem ertheto mi a problema, koszonom elore a segitseget.
[ Szerkesztve ]
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz Gyuri16 #1027 üzenetére
ok, ez igy hulyeseg
kozben rajottem, mi volt a lenyegi gond, tehat az operator[] fv-nek egy referenciat kell visszaadni, itt konkretan egy pointerre.
erre jutottam, leirom azoknak, akik az elozot elolvastak es nem ertik min kinlodok
(ha esetleg lehet jobban, szoljatok)#include <iostream>
#include <vector>
using namespace std;
class ChildList {
private:
vector<int *>* v;
public:
ChildList(int n) {v = new vector<int *>(n);}
int* & operator[] (const int index);
};
int * & ChildList::operator[](const int index) {
return (*v)[index];
}
int main(int argc, char **argv) {
ChildList cl(10);
int * a = new int(5);
cl[0] = new int(5);
cl[1] = a;
cout << *cl[0] << *cl[1];
return 0;
}Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz dani0907 #1049 üzenetére
megneztem valgrind-dal ( valgrind --leak-check=yes -v ./strc ), eredmeny:
==6235== 871 errors in context 1 of 1:
==6235== Mismatched free() / delete / delete []
==6235== at 0x4023881: operator delete(void*) (vg_replace_malloc.c:387)
==6235== by 0x8048D80: stringc::operator=(stringc) (stringc.hpp:61)
==6235== by 0x8048F98: load(_IO_FILE*, stringc) (stringc.hpp:103)
==6235== by 0x8049073: test_1() (strc.cpp:17)
==6235== by 0x80491C0: main (strc.cpp:42)
==6235== Address 0x42c5f20 is 0 bytes inside a block of size 1 alloc'd
==6235== at 0x40243B0: operator new[](unsigned int) (vg_replace_malloc.c:299)
==6235== by 0x8048C46: stringc::stringc(stringc const&) (stringc.hpp:46)
==6235== by 0x804905A: test_1() (strc.cpp:17)
==6235== by 0x80491C0: main (strc.cpp:42)(sorszamok nem fognak egyezni, mert kivettem belole az ifdefeket)
ebben a fuggvenyben:
stringc stringc::operator=(stringc s){
if(this == &s)
return *this; //önmagába nem másol
delete p;
h=s.h;
p= new char[h+1];assert(p!=0);
strcpy(p,s.p);
return *this;
}delete p; helyett delete [] p; kell.
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz kittamama #1091 üzenetére
Union find algoritmust hasznalhatod. az egyes halmazok az egymassal rokonsagban allo emberek fogjak alkotni. a megoldas a halmazok szama.
Sk8erPeter: +1, azt hiszem erre a szovegre gyarthatnank egy sablont, vagy vicces kepet vagy valamit
[ Szerkesztve ]
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz Jhonny06 #1115 üzenetére
ha nativ kodot generalsz akkor a legjobb egy disassembler (pl ida pro - ennek van ingyenes valtozata is, ami megfelelo), vagy debugger (pl ollydbg). ezekben meg tudod nezni hogy milyen kodot gyartott a fordito.
szerintem alap szinten erdemes elfogadni, hogy a fordito bekapcsolt optimalizacio mellett jo kodot general, es kar itt keresni a bottlenecket. ha mar tenyleg minden tokeletesen van a kodban, akkor lehet nekialni ezzel foglalkozni, viszont nem art hozza az asm es a konkret processzor ismerete, enelkul ugyanis nem egyertelmu, mit miert csinal egy fordito (pl attol hogy valamit kevesebb asm paranccsal oldasz meg, nem feltetlen lesz gyorsabb).
szerintem fontosabb az, hogy a program olvashato legyen emberek szamara, a tobbi meg a fordito dolga.
egy osszehasonlito teszt engem is erdekelne, sok ilyen tema van, amin szeretnek vitatkozni az emberek, kivancsi vagyok van e ertelme.
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
hogyan lehet MS visual studiobol (2010 express) egy letezo projektet exportalni, hogy el tudjam kuldeni valakinek? egesz mappa kicsit nagy, es nem tudom melyik fajlok kellenek..
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz Brianiac #1156 üzenetére
'\0' lesz az. ' jelek egy darab chart jelolnek, mig a " egy stringet.
a \ jel azert kell, hogy a 0-t escapeld, igy egy specialis jelet kapsz, nullbyteot, ami a karakterlanc veget jeloliArchElfnek valoszinuleg az nem tetszik, hogy olvashatatlan amit bemasoltal, legkozelebb hasznald a programkod gombot beszurasnal.
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz 7600 GS #1194 üzenetére
#include <iostream>
using namespace std;
#define w a,
#define y i =
#define gl 0
#define tr >>
#define olo a >>
#define hf 0;}
#define lo b;
#define bb ; return
#define x for (
#define f cin
#define gg < a+
#define hh b; i++
#define fw if (!(a%
#define qp << i
#define pl i||b%
#define t b;
#define uw i)) cout
#define o main() {
#define dl << " "
#define l int
l o l
w t f
tr olo lo
x l y 1;i gg hh ) fw pl uw qp dl
bb
gl&hf
(remelem erted a celzast)Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz 7600 GS #1202 üzenetére
az en megoldasom nem tetszik? lefordul es mukodik, azt csinalja amit irtal egy smileyt vartam legalabb, hisz benne van majd 10 perc munkam
amugy ez tenyleg trivialis feladat, ezeket legegyszerubb leirni papirra, te hogyan oldanad meg. szisztematikusan, lepesrol lepesre. aztan megnezed mit lehet benne automatizalni, mik ismetlodnek stb. legalabb egy kicsit probald meg
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz WonderCSabo #1207 üzenetére
koszonom, mindjart jobban erzem magam
Jester01: gondoltam arra is, par percig kerestem ingyenes c++ kodot obfuszkalo programot, de nem talaltam
erdekes viszont, hogy van par fizetos, de nem igazan ertem mire jo ez. gondolom a visszafejtest akarja neheziteni, de akkor miert nem a leforditott binaris szintjen csinalja az obfuszkalast, mi elonye van a koddal kinlodni?Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz kingabo #1404 üzenetére
delphit meg fejlesztik, csak mar nem a borland. amugy szerintem egy nagyon jo nyelv kezdonek. orokolte a pascal jo tulajdonsagait es gyorsan ossze lehet benne kattingatni mutatos guit. nalunk egyetemen delphi (most mar lazarus) az elso prog. nyelv.
Jhonny06: c++ es java kozt azert eleg nagy a kulonbseg. utobbi joval szigorubb es ezert jobb egy kezdonek. szerintem ha komolyan gondolja valaki siman lehet kezdonyelv. egyetlen gond, hogy konnyen elkenyelmesedik a garbage collector mellett, es nehezebb lesz az esetleges valtas c++ra pl.
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz CoolBoy323 #1410 üzenetére
ahogy doc is irta, ha webes dolgokat akarsz akkor nem. bar letezik a delphi for php dolog, amibol elvileg valamilyen weboldal lesz, viszont ezt biztos nem ajanlanam kezdonek. masik ellenerv, hogy jelenleg nincs ingyenes verzio delphibol (alternativa a freepascal alapu lazarus).
webes vonalon egyertelmu, hogy kell html + css + javascript. es utana valamilyen szerver oldali kod. en php-t ajanlom, foleg azert, mert ez a legnepszerubb, sok anyag van hozza, es a forumon is konnyen kapsz segitseget.
ez a tema eleg gyakran felmerul, es tobbnyire mindenki a sajat kedvenc nyelvet probalja "eladni", mostanra a tobbseg mar megunta, ezert nem lett belole tul hosszu vita
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz Jhonny06 #1417 üzenetére
ha arra gondolsz, hogy 4x kiirja, hogy Empty tree az azert van, mert amikor a rekurziv hivasokkal a countNodes fv a levelekbe er, ott a root NULL lesz. a fa uresseget csak a gyokerenel lehet vizsgalni. a count valtozodnak nem kellene staticnak lennie. ha mas baj is van, akkor megnezem jobban, csak ezt talaltam gyorsan.
azon kivul a pre/post/in order eljarasaidban kicsit gubanc van, gondolom itt a copy paste nem lett rendesen javitva.
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz Jhonny06 #1426 üzenetére
nem csak ket mutato lesz lefele, hanem sok. konkretumot akkor tudok mondani, ha elmondod mire kell. binaris fakbol se csak olyanok vannak ahol a bal a kisebb ertekeke a jobb meg a nagyobbake.
ha a kereso faknal maradunk akkor nezd meg pl a b-treet. ez egy hasonlo (kicsit bonyolultabb) adatszerkezet mint a bin. kereso fa, viszont nem feltetlenul binaris. ezt adatbazisoknal hasznaljak pl.
masik jo pelda a trie amit kulonbozo szoveges algoritmusnal hasznalunk.altalanosan elmondhato, hogy minden elemben lesz tobb mutato a gyerekekre, ez lehet egy tombben, lancolt listaban vagy valami bonyolultabban.
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz Jhonny06 #1428 üzenetére
a <map> egy binaris kereso fa a jobbik fajtabol, konkretan red black tree. (kulcs -> ertek) parosokat tud tarolni, es gyorsan ezekben keresni, hozzaadni.
ilyen hierarchiat megcsinalhatsz igy:
alkalmazott osztaly:
- pointer a fonokre (szinten alkalmazott osztaly)
- tomb (vagy vector, vagy map..) pointerekbol az alkalmazottakraezzel az a gond, hogy nem igazan lehet benne ertelmesen keresni. tehat ha pl van mindegyiknek neve, es meg akarod keresni, hogy az adott nevu alkalmazottnak ki a fonoke, akkor egy ilyen fanal az egeszet at kellene nezned.
ebben esetben en hozzaadnek egy map-ot amiben a kulcs a nev lenne az ertek pedig az alkalmazott. igy vegulis ket fastrukturad lenne, az egyik mutatna az egymas kozti viszonyokat (ki kinek a fonoke..) a masikkal pedig gyorsan meg tudnad talalni a megfelelo alkalmazottat az elobbi faban.
[ Szerkesztve ]
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz Lavidaloka #1462 üzenetére
ezt a reszletet googleba irva talalt egy nagyobb darab kodot is, talan azt le lehet forditani megfelelo konyvtarakkal.. viszont amit kerdezni akarok: miert hasznalsz aimbotot?
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz Sk8erPeter #1667 üzenetére
linux kernel mailing listen volt error szo:
[link]
vannak ott peldak is.nem emlekszem, hogy valaha is hasznaltam volna goto-t (dynamic_castot viszont igen ), de ez a dogmatikus elutasitas feleslegeges. van, hogy a kod egyszerubb es atlathatobb lesz vele. nyilvan kell tudni hasznalni.
azok a peldak amiket irtal:
minek irjak fuggvenyt returnnal, ha 3 sorbol all az egesz. csak komplikacio. goto lehet kifejezobb is, ha ertelmes neveket adsz a labeleknek.masodik pontod: szerintem itt dabadab arra gondolt, hogy ha pl valamilyen resourcot fel kell szabaditani return elott. itt egyszserubb a vegere tenni a felszabadito kodot returnnal, es a tobbi helyrol csak gotozni a vegere. persze c++ eseten ezt illik OO szinten megoldani, vagy finally-ban..
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz Sk8erPeter #1675 üzenetére
nem rad ertettem az elutasitast, hanem, hogy a tanarok altalaban ugy tanitjak, es a miertek gyakran hianyoznak. en magam reszerol nem hasznalom, mert nem igy tanultam programozni, viszont ha ott van a kodban nem bantom, hacsak nincs ra valamilyen komoly ok.
Nem épp a sűrűn ismétlődő feladatok elvégzésére szoktunk például függvényeket írogatni?
de igen, viszont ha a cel a minel kisebb/gyorsabb kod, akkor jobban jarsz a kis fuggveny inlineolasa (vagy call) helyett a goto-val. raadasul a goto csak egy sor, mig a fuggvenyhivas + return 2szerintem Linus stilusa nem tul jo. az hogy a velemenyet durvan fejezi ki nem gond, viszont sokszor beszel megalazoan mas velemenyu emberekrol. egy ilyen pozicioban levo embernek igazan nem kellene nyiltan lehulyeznie masokat.
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz Sk8erPeter #1679 üzenetére
bar dabadab reszben valaszolt, itt az en par sorom is:
kisebb kodot a forditas utan ertettem. ha egy kis fuggvenyt hivsz meg azt gyakran inlineolja a fordito, es ha sok helyen van, akkor bizony megnoveli a program meretet. masik megoldas a fuggvenyhivas, az viszont "draga".
masik dolog amihez mar nem igazan ertek (szivesen olvasnam mas velemenyet, pl Jester01 szokott ilyen temakban hozzaszolni), hogy mit csinal a jmp es call a branch predictionnel, van egy erzesem, hogy a call tonkrevagja a pipelinet.
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
van egy makefileos projektem amit linuxon fejlesztek, es most kellene belole egy windowsos exe-t varazsolnom (amit el tudok masnak kuldeni, es tudja futtatni minden tovabbi nelkul). mi erre a legfajdalommentesebb megoldas? windowson eddig csak dev c++t hasznaltam, talan ez is megeszi. oldalan olvasom, hogy a futtatashoz kell az MSVCRT.DLL, ami szerinte ott van minden mai windowson, van ezzel tapasztalatotok?
Nem vagyok egoista, csak uborkagyalu!
-
Gyuri16
senior tag
válasz dabadab #1742 üzenetére
"van linux ala is"
ha ezt tudom fel oraja.. atbootoltam windowsba, amit kb felevente hasznalok, es ilyenkor felsir az osszes program, hogy elhanyagolom oket. jo par percig eltart, mire hasznalhato a gep.ha cygwinnel forditom, akkor az rendesen futtathato lesz mas rendszeren cygwin nelkul?
mindenesetre kozben sikerult dev-c++t ravenni, hogy leforditsa, ez is mingw-t hasznal, ha minden igaz, szoval remelem jo lesz
Nem vagyok egoista, csak uborkagyalu!
Ú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!