játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5484
FZoli:    4893
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2526

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2196
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] > 4 < [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [90] [95] [100] [105] [110] [115] [120] [125] [130] [135] [140] [142]
Matzi - Szerkesztő | 2526 hsz       Online status #208678   2015.11.23 10:24 GMT+1 óra  
Szerintem is felesleges egyetlen egy típusvizsgálatért bekapcsolni az egész RTTI-t. A legtöbb esetben úgyis kb arra leszel kíváncsi, hogy egy Parent pointer az A vagy a B gyerekre mutat e. Mivel közös az ős, egy virtuális függvényhívással meg tudod oldani. Kicsit macera (bár csinálhatsz rá egy makrót), de elég gyors és biztonságos. Ennél több elég ritkán kell.

Kód:
class Parent {
  static const UID TypeID = 1;
  virtual bool IsType(UID type) const { return TypeID == id; }
}

class ChildA : public Parent {
  static const UID TypeID = 2;
  virtual bool IsType(UID type) const override
    { return TypeID == id || Parent::IsType(type); }
}

class ChildB : public Parent {
  static const UID TypeID = 3;
  virtual bool IsType(UID type) const override
    { return TypeID == id || Parent::IsType(type); }
}

....

Parent* valami = ...;
if (valami->IsType(ChildA::TypeID))
{
...
}


Értelemszerűen az UID típust értelmezheted aminek csak szeretnéd, akár stringnek is, bár az lassúcska. Mi például string hashekkel dolgozunk, ami kód írásakor offline számítható, és commenben odaírod, hogy mi az eredetije, vagy csinálsz egy konstanst valahol ugyanazzal a névvel, amiből a hash számolódott. Van ugyan egy kicsi esély az ütközésre, de az kb nulla.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
zeller - Törzstag | 487 hsz       Online status #208677   2015.11.23 10:04 GMT+1 óra  
Jo, igaz (runtime-t akartam irni, csak hulye vagyok), a lenyeg, hogy nem tamogatott. Nem vagyok benne biztos, hogy a java miatt, de az android dokumentacio explicit emliti, hogy felejtsd el.

   
Asylum - Törzstag | 5484 hsz       Online status #208676   2015.11.23 09:53 GMT+1 óra  
Ez nem a compiler hibája hanem a java-é...úgy tölti be a dll-eket, hogy nem publikálja az rtti-t, innen jön ez a hiba. A compilerrel semmi baj nincs.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
zeller - Törzstag | 487 hsz       Online status #208675   2015.11.23 09:40 GMT+1 óra  
az android nem tamogatott platform a c++ szamara szvsz. rendes szamitogepeken van rendes compiler.

   
syam - Törzstag | 1491 hsz       Online status #208674   2015.11.23 09:34 GMT+1 óra  
Én "saját" rtti-t használok.
alias aalberik
   
Asylum - Törzstag | 5484 hsz       Online status #208673   2015.11.23 08:58 GMT+1 óra  
Én kerülném a dynamic_cast-ot is, meg az rtti-t is. Androidon jött elő az a probléma, hogy dll-eken keresztül nem működik a dynamic_cast és ez kurvanagy szopás, mert most írthatom ki az engineből.

Javasonlám inkább az idtech4 megoldását.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Instalok - Tag | 607 hsz       Online status #208671   2015.11.23 06:59 GMT+1 óra  
Egyébként ismételten rákeresve az RTTI és dynamic_cast dolgokra, itt például azt írják, hogy nem annyira vészes. Mondjuk azzal meg egyetértek, hogy ha túl sok helyen kell dynamic_cast-ot használni, akkor az egy rosszul tervezett program.

   
Parallax - Tag | 606 hsz       Online status #208670   2015.11.22 23:29 GMT+1 óra  
Hiába az as, a feltétel scope-ján kívül kell egy változót deklarálni mindenképpen. Egyébként az OOP patternek zömének alapja a polimorfizmus, anélkül kár is C++ t használni, elég a C.

   
Instalok - Tag | 607 hsz       Online status #208669   2015.11.22 22:22 GMT+1 óra  
C#-ban is használhatod rögtön az "as"-t, null-t ad vissza, ha nem konvertálható. Hát, akkor lehet, hogy dynamic_cast lesz a vége.

   
Parallax - Tag | 606 hsz       Online status #208668   2015.11.22 21:22 GMT+1 óra  
Igazából, ha C#-ban az is-t használod, akkor utána az as-al kell konvertálni, vagyis az már helyből két dinamikus művelet, míg C++ nál már a feltételben is megkaphatod az eredményt egyből:
Kód:
if (auto b = dynamic_cast<Behavior *>(c))
    b->...

   
zeller - Törzstag | 487 hsz       Online status #208667   2015.11.22 17:29 GMT+1 óra  
az rtti kikapcsolasa hulyeseg. a dynamic cast meg jo

   
Instalok - Tag | 607 hsz       Online status #208665   2015.11.22 11:37 GMT+1 óra  
A dynamic_cast mennyire ördögtől való? Általában a RTTI-t kikapcsolom (gondolom ez performance boost is), de dynamic_cast-hoz viszont (nyilvánvalóan) szükséges. Egyetlen helyen akarnám csak használni, de ott is csak arra, hogy megállapítsam, hogy egy adott objektum az egy adott osztály gyereke-e. Komponens-alapú dologhoz kellene.
Kód:
class Component { };
class Behavior : public Component { };
class MyBehavior : public Behavior { };

void Add(Component* c)
{
    // C#-ban ennyivel el lehet intézni, itt használnám a dynamic_cast-ot.
    if (c is Behavior) { ... }
}

Add(new MyBehavior());

   
Asylum - Törzstag | 5484 hsz       Online status #208632   2015.11.13 12:25 GMT+1 óra  
Használd a fantáziád:

Kód:
template <bool value>
class where
{
private:
    where ();
};

template <>
class where<true> {};

template <class T>
class MyClass : where<is_base_of<Base, T>::value>
{
};
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Instalok - Tag | 607 hsz       Online status #208620   2015.11.12 16:32 GMT+1 óra  
Hát, ezzel nagyjából ott vagyok, ahol eddig, minden esetre tanulságos ez a megoldás, lehet, hogy eszembe sem jutott volna. Pedig így megnézve logikus...

   
Asylum - Törzstag | 5484 hsz       Online status #208612   2015.11.12 09:45 GMT+1 óra  
A conceptek nem részei a szabványnak. Amúgy még így lehet megcsinálni:

http://stackoverflow.com/questions/2631585/c-how-to-require-that-one-template-type-is-derived-from-the-other

Tessék egy rövidebb verzió:

Kód:
template <class A, class B>
struct is_base_of
{
    static const int test(A*);
    static const short test(...);

    static B* get();

    enum { value = (sizeof(test(get())) == sizeof(int)) };
};

Ezt a hozzászólást Asylum módosította (2015.11.12 09:53 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Instalok - Tag | 607 hsz       Online status #208606   2015.11.11 18:51 GMT+1 óra  
static_assert-en kívül van-e lehetőség template típusellenőrzésre? Azt szeretném megnézni, hogy az adott típus az gyereke-e egy másiknak. Természetesen csak és kizárólag compile-time. Hasonlóan, mint C#-ban a where feltétel generic esetén. Egyelőre csak ennyi van a függvény elején:
Kód:
static_assert(std::is_base_of<ComponentBase, T>::value, "Not a component!");

Olvastam valamit a Concept-ről, de az VS 2013 alatt (még?) nem működik, és nem szeretnék váltani, főleg nem emiatt.

   
Instalok - Tag | 607 hsz       Online status #208037   2015.08.02 08:57 GMT+1 óra  
Oké, ez jogos.

   
Asylum - Törzstag | 5484 hsz       Online status #208035   2015.08.02 08:39 GMT+1 óra  
Már hogy a fakkba ne lehetne

Kód:
// alma.cpp

class Alma
{
public:
    inline void Foo() {}
};


C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Instalok - Tag | 607 hsz       Online status #208028   2015.08.01 19:33 GMT+1 óra  
Oké, hogy az egy hint, viszont ha nem a headerben van, akkor NEM LEHET inline. Néztem jó pár cikket ezzel kapcsolatban, és megállapították, hogy egyszerű getter/setter függvények esetén NAGYON sokat dob az inline.

C++ban meg nincs olyan, hogy property - vagy értsem ezalatt a getter/setter függvényeket?

   
Parallax - Tag | 606 hsz       Online status #208027   2015.08.01 19:30 GMT+1 óra  
Idézet
Instalok :
Ha nem a headerbe teszem a definíciót, akkor nem lehet inline. Szóval a kérdés még mindig áll. Inline esetén egyébként semmi nem kerül a dll-be, a fordító panaszkodik is, ha inline függvényt akarsz exportálni. Property?


Nincs olyan, hogy inline, ez csak egy kívánság, ami vagy teljesül, vagy nem. Cserébe viszont állandóan újra fog fordulni minden, amit érintenek ezek a fgv-ek. getter/setter = property.
Optimalizálni ott kell, ahol a program dolgozik, nem pedig mindent. Általában a program 10%-a fut az idő 90%-ban, itt kellene optimalizálni, nem feltétlen inline-ozással, ami mint írtam tetszőleges.

   
Instalok - Tag | 607 hsz       Online status #207987   2015.07.22 20:18 GMT+1 óra  
Ha nem a headerbe teszem a definíciót, akkor nem lehet inline. Szóval a kérdés még mindig áll. Inline esetén egyébként semmi nem kerül a dll-be, a fordító panaszkodik is, ha inline függvényt akarsz exportálni. Property?

   
Parallax - Tag | 606 hsz       Online status #207986   2015.07.22 19:09 GMT+1 óra  
Ha a headerbe teszed a kidolgozást is, akkor mi fordul a dll-be? cpp-ke rakd szerintem a property-ket is.

   
Instalok - Tag | 607 hsz       Online status #207983   2015.07.22 15:33 GMT+1 óra  
Ha egy dll-ként használható modult csinál valaki, akkor tervezés szempontjából melyik a szebb?
- az egyszerű get/set függvények inline függvények, azaz a headerben vannak definiálva
- még az akár 1 soros gettereknek is csak a deklarációja van a headerben, a definíció mindig a cpp fileban található (természetesen ez alól kivételek a template függvények, amelyek kötelezően a headerben találhatóak)

   
VMware28 - Tag | 2 hsz       Online status #207878   2015.07.02 09:52 GMT+1 óra  
Hello, Lead játékfejlesztőt keresek egy nemzetközileg elismert magyar játékfejlesztő céghez. Jó a fizu, jó a csapat. Szívességből írtam ide ki, hátha valakit érdekel. Ha igen, írj nekem az akos.szabadi@hotmail.com címre.

   
Parallax - Tag | 606 hsz       Online status #207778   2015.06.12 00:10 GMT+1 óra  
A program bonyolultságát nem az dönti el, hogy konzolos, vagy ablakos. Kompatibilitási okai vannak a konzolnak régi DOS-os programok miatt. Még ma is vannak olyan fejlesztői eszközök, amik DOS-os kimenetet állítanak elő a programnak pl.: Progress és a mai napig írnak ebben ügyviteli rendszereket kórházaknak stb. Játékfejlesztésnél igazából editornál használunk ablakos nyomógombos felületet, játéknál egy üres render ablak kell csak, amire OpenGL, vagy DirectX-el rajzolunk, a konzolos részt mondjuk logolásra lehet használni.

   
itamas - Tag | 127 hsz       Online status #207764   2015.06.08 19:00 GMT+1 óra  
Hát igen, az Assembly már eléggé hardverközeli nyelv, s valóban, arra mindenesetre jó volt a róla szóló könyv bújása, hogy megtudjam, mik azok a regiszterek, mitől 8, 16, 32 ... bites egy program vagy operációs rendszer (ekkora regisztereket bír kezelni, ha jól értelmeztem).
De a C++-ra visszatérve: a konzolos részét használva is lehet legalább olyan jó progikat készíteni, mint az ablakossal? Egyáltalán: miért van elkülönítve a két rész? Elvileg azért pakolja alapból teli a szerkesztőablakot ablakkezelő kódokkal az induláskor, hogy könnyítse a programozó dolgát - engem inkább elriaszt.
Asylum, jók a cikkeid (ezek alapján is fogok majd nekiállni a tanulásnak) és aranyos a hörcsögöd is.
   
Asylum - Törzstag | 5484 hsz       Online status #207763   2015.06.08 15:14 GMT+1 óra  
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Parallax - Tag | 606 hsz       Online status #207761   2015.06.08 13:16 GMT+1 óra  
A C/C++ (mert azért ez eggyütt használandó sok esetben) elég mély téma, igazán jól művelni sok év kérdése. Assembly-vel C++ állásinterjún szoktak szivatni, igazából nem is maga a nyelv, hanem a hardver ismeret a lényeg, hol mennyi elemi utasítást lehet megspórolni, a memória melyik részére teszi az adatot éppen a program, vagy melyik memóriába, "itt mit csinálhat a compiler" és hasonló kérdésekre tudsz válaszolni és aszerint programozni, vagy mások elszúrt programjait helyrehozni.

   
itamas - Tag | 127 hsz       Online status #207760   2015.06.08 12:57 GMT+1 óra  
Idézet
Nomad :
én egy kis bengabali vok de én tavaly előtt tanultam meg a c++-t internetes tutorialokból szerintem nem volt nehéz megtanulni úgyhogy szerintem nyugodtan kezdhet azzal az ember csak egy kis idő kell mire az ember elkezdhet opengl meg ilyen komolyabb dolgokkal foglalkozni...

Irigyellek, jóeszű gyerek lehetsz. Én pár hónapja beszereztem egy rakás programozási szakkönyvet, de még mindig ott tartok, hogy sehol. Igaz, nem is nagyon volt még időm gyakorolni, de talán most nyáron...
A C++-t hajtanám én is, mert úgy látom, ez a fórumtéma pörög itt a JF.hu-n, nem a sima C-s vagy C#-os, úgyhogy ebből azt szűrtem le, hogy ez a legalkalmasabb a játékfejlesztésre is.
Idézet

(az utóbbi 2 hónapban megtanultam az assembly-t)


Pedig az kemény dió lehet. És van egyáltalán valami létjogosultása az Assemblynek a mostani korszerű és korszerűsített programozási nyelvek között? Vagy azt is fejlesztették?
Annakidején megvettem Agárdy Gábor: Gyakorlati Assembly c. könyvének első kötetét; az eleje még érthető volt számomra kb. a szövegek kiíratásáig, de utána már mintha veszített volna a szájbarágósságából és nem sokat értettem belőle...
   
sasukekarakter - Tag | 16 hsz       Online status #207757   2015.06.06 14:02 GMT+1 óra  
Mivel ugyan az Mint a terep2 Remake-ek mely, CTruck3D vagy is ennek a játéknak
Simon_hasur fejlesztett ládásul köze van a c/c++, openGL Grafikával.


https://youtu.be/B74QvPGyBYM
   
proof88 - Törzstag | 530 hsz       Online status #207589   2015.05.07 21:26 GMT+1 óra  
Bocsi, ezt benéztem. Nem fogtam fel, hogy eleve azt írta, hogy "beépített típusokat".
   
Asylum - Törzstag | 5484 hsz       Online status #207588   2015.05.07 09:37 GMT+1 óra  
Erre gondoltam igen. Ha nem muszáj akkor ne adjunk puskát a programozó kezébe.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Matzi - Szerkesztő | 2526 hsz       Online status #207587   2015.05.06 23:26 GMT+1 óra  
Szerintem arra gondolt, hogy egy sima getter felesleges hogy const referenciát adjon vissza. Az esetek többségében egy sima érték visszaadás is elég, még akár gyorsabb is lehet a végeredmény. Míg ha egy const ref-re ha const castot hívsz, akkor settert csináltál a getterből. Nem szerencsés, még akkor sem ha a a "felhasználó" a hülye.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
proof88 - Törzstag | 530 hsz       Online status #207586   2015.05.06 22:15 GMT+1 óra  
Furcsállom Asylum hogy ezt írtad. A const az én szememben arra való, hogy megmondjuk a fordítónak, hogy mit nem szeretnénk módosítani, így ő vigyáz arra hogy véletlenül se tegyük meg, valamint hogy mit nem szeretnénk ha más módosítana. A const_cast az egy workaround arra hogy ha mégis módosítanánk erőszakkal, a lehetőség megvan, de az már szembeszegül az alkotó által felállított szabállyal, miszerint az ott const. Tehát a felelősség azé aki hülyeséget csinál. Ha egy objektumra szeretnék referenciát visszaadni, akkor inkább azt csinálnám, mint hogy érték szerint adjam vissza, nem? Ptr sem jobb ebből a szempontból. A cpp-ben mindenre van valami apró trükk, de érdemes bizonyos szabályokat betartani.
   
Instalok - Tag | 607 hsz       Online status #207585   2015.05.06 12:06 GMT+1 óra  
Aki const_castot ír, azt le kell lőni.

Egyébként ilyen szempontból ez mindennél probléma, amit nem érték szerint adsz át. Szóval nem kell const_castolgatni, és nincs gond. Egyébként változó, általában enumoknál, booloknál, meg ilyesmiknél érték szerint adom vissza.

   
Asylum - Törzstag | 5484 hsz       Online status #207584   2015.05.06 11:47 GMT+1 óra  
Btw. ilyet ne írj le...

Kód:
const int& getX()


Beépített típusokat mindig érték szerint, mert még a végén ráhív egy const_cast-ot és nézhetsz...
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Instalok - Tag | 607 hsz       Online status #207581   2015.05.05 13:03 GMT+1 óra  
Igen, mondjuk lehet, hogy úgy leszek az egésszel, hogy aki szétbirizgálja a headert, annak egészségére (rajtam kívül úgysem fogja használni senki ). Egyébként van forceinline, én a getterekhez azt használtam. Ha jól rémlik az olyasmi, hogy a fordító nem nagyon ellenőrzi le, hogy ez jogos-e inline-nak, hanem azt mondja, h "oké, akkor az lesz".

   
Asylum - Törzstag | 5484 hsz       Online status #207580   2015.05.05 12:34 GMT+1 óra  
Az inline is csak egy hint, semmi nem garantálja, hogy az lesz (dinamikus kötés esetén meg nem is lehet). Ha a fordító még fordítási időben ki tudja következtetni a típust, akkor inlineosíthatja persze.

Teljesítménykritikus dolgoknál le szokták szarni a tervmintákat. Pl. a GLM library csak headerökből áll, így az egész inlineolódik, de bárki belepiszkálhat (ez egyébként is saját felelősség...).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Instalok - Tag | 607 hsz       Online status #207578   2015.05.05 11:56 GMT+1 óra  
Igen, mindkettő ismerős, de nem is gondolkoztam még rajta, hogy ezek valamelyikét használjam. Mármint vannak olyan esetek, amikor használtam, de azt inkább a platformfüggetlenség miatt tettem - például base graphics device osztály, majd abból származnak le a megfelelő osztályok.

Az interface dolog egyébként nekem tetszetősebb, viszont az inline így nem felejtős?
Kód:
// public header
class Base
{
public:
    virtual const int& getX() const = 0;
};

// private (lib) header
class Der : public Base
{
public:
    const int& getX() const { return x; } // override... inline?

private:
    int x;
};

   
Asylum - Törzstag | 5484 hsz       Online status #207577   2015.05.05 11:30 GMT+1 óra  
Interfész tervminta.

Kód:
// headerben:
class IMyInterface
{
protected:
    virtual ~IMyInterface();

public:
    virtual void PublicMethod1() = 0;
    virtual void PublicMethod2() = 0;
};

IMyInterface* CreateInterface();

// lib-ben:
class MyInterfaceImpl : public IMyInterface
{
private:
    // adattagok

public:
    void PublicMethod1() override;
    void PublicMethod2() override;
};


IMyInterface* CreateInterface()
{
    return new MyInterfaceImpl();
}


Ez az egyik megoldás és kicsit zanzásított. Általában nem lehet rá delete-et hívni, hanem van egy Release() metódusa.

A másik megoldás a pimpl idiom (híd tervminta).

Kód:
// headerben:
class MyInterfaceImpl;

class MyInterface
{
private:
    // hiába teszi publikká, nem tud ráhívni semmit
    MyInterfaceImpl* impl;

public:
    MyInterface();
    ~MyInterface();

    void PublicMethod1();
    void PublicMethod2();
};

// libben:
class MyInterfaceImpl
{
public:
    void PublicMethod1();
    void PublicMethod2();
};

MyInterface::MyInterface()
{
    impl = new MyInterfaceImpl();
}

MyInterface::~MyInterface()
{
    delete impl;
}

void MyInterface::PublicMethod1()
{
    impl->PublicMethod1();
}

void MyInterface::PublicMethod2()
{
    impl->PublicMethod2();
}


Ennek az az előnye, hogy elég automatikus változóként deklarálni (MyInterface interf; )

Ezt a hozzászólást Asylum módosította (2015.05.05 11:51 GMT+1 óra, ---)
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Instalok - Tag | 607 hsz       Online status #207576   2015.05.05 09:44 GMT+1 óra  
Van két projektem. Az egyik egy static libként fordul, a másik pedig futtathatóként. A static libet hozzálinkelem a futtathatóhoz. Eddig szuper minden, azonban, hogy használhassam a static libet megfelelően, szükségesek annak a headerjei. Viszont szeretném, ha bizonyos függvények és egyebek nem lennének elérhetőek a liben kívülről, azaz a futtatható ne férhessen hozzájuk. Lehet private dologgal szórakozni, azonban, mivel a headert mellékelni kell, így az könnyen módosítható, és talán public/private csere esetén még újrafordítani sem kell.

Hogy lehetne azt szépen megoldani, hogy csak az általam kijelölt memberek legyen elérhetőek?

   
Asylum - Törzstag | 5484 hsz       Online status #207551   2015.04.27 19:37 GMT+1 óra  
Szerintem meg beadandó vmelyik suliba...

Kód:
struct Arfolyam
{
    double E;
    double C;
    int nap;
};

Arfolyam arfolyamok[31] =
{
    { 293.50, 242.33, 1 },
    { 291.33, 243.55, 2 },
     // stb.
};

rendez(arfolyamok);
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Geri - Törzstag | 2196 hsz       Online status #207550   2015.04.27 18:37 GMT+1 óra  
az, úgy érzem, hogy ez megint egy újabb glcreatemmorpg-harcosos sztori lesz

   
Bani05 - Tag | 3 hsz       Online status #207548   2015.04.27 18:19 GMT+1 óra  
És akkor ezt a rendezést ez alapján hogyan kellene átírni? nem akar sikerülni:
double seged;
int j;
for (i = 0; i < 30; i++)
{
for (j = i + 1; j < 31; j++)
{
if (E[ i ]>E[ j ])
{
seged = E[ i ];
E[ i ] = E[ j ];
E[ j ] = seged;
}
}
}

for (i = 0; i < 3; i++)
{
cout << E[ i ] << " ";
}

   
Elodin - Tag | 184 hsz       Online status #207546   2015.04.27 17:33 GMT+1 óra  
Miért nem építesz az elején egy tömböt az indexekből (x. elem = x).
Rendezés közben ebbe a tömbe is cseréld az elemeket párhuzamosan a másikkal, így a végén ki tudod olvasni az eredeti indexeket....

   
Instalok - Tag | 607 hsz       Online status #207545   2015.04.27 17:33 GMT+1 óra  
Az sem gond, csak figyelni kell rá, hogy legfeljebb 3-mat gyűjtsön össze. Ha megvan a 3 legjobb, utána sorrendben meg lehet keresni az adott tömb(ök)ben, hogy az mely indexen van. Ha több helyen is, akkor annyival csökken a megkeresendő elemek száma.

   
Geri - Törzstag | 2196 hsz       Online status #207544   2015.04.27 17:19 GMT+1 óra  
az úgy nem jó, mert mi van, ha több napon is ugyanaz volt az árfolyam?

   
Tunyu - Tag | 450 hsz       Online status #207543   2015.04.27 16:04 GMT+1 óra  
Ha növekvő sorrendbe raktad, utána az első hármat összehasonlítod az eredeti listában levő értékekkel és ha egyezik akkor megvan az indexe is.

   
Bani05 - Tag | 3 hsz       Online status #207542   2015.04.27 15:06 GMT+1 óra  
Én is erre gondoltam de a napok azok az árak indexei és ha rendezem az árakat akkor az első 3ár ami kell, értelemszerűen a 0,1,2 indexet kapja de nekem meg ugye az eredeti indexek kellenének. Bár vszínű hogy ez a járható út csak nem tudom, hogy lehetne indexxel együtt rendezni.

   
Asylum - Törzstag | 5484 hsz       Online status #207541   2015.04.27 13:55 GMT+1 óra  
a napokat is rendezd az árfolyammal együtt
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Frissebbek | Korábbi postok
[1] [2] [3] > 4 < [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [90] [95] [100] [105] [110] [115] [120] [125] [130] [135] [140] [142]