Kezdőoldal » Számítástechnika » Programozás » Struct típusú vektor rendezése...

Struct típusú vektor rendezése (c++)?

Figyelt kérdés

Sziasztok! Van egy ilyen structom:

struct Adatok{

int x;

int y;

float magassag;};


Iletve egy ilyen vektorom: vector<Adatok> v; ezt szeretném magasság szerint rendezni. Hogyan lehet megtenni?


Úgy tudom kell rá írni egy operátort, de nem tudom, pontosan hogy, illetve hogyan kell meghívni. Ezzel próbálkoztam:


bool operator<(Adatok a, Adatok b)

{

return a.magassag < b.magassag;

}

a main-en belül pedig:

sort(osszes.begin(),osszes.end());


Nos erre hibát dob (azt, hogy az operátornak csak egy argumentuma kellene, hogy legyen)


2019. ápr. 14. 23:31
 1/2 A kérdező kommentje:

Ezzel is próbálkoztam:

struct Adatok{

int x;

int y;

float magassag;


bool CA(Adatok a, Adatok b)

{

return (a.magassag< b.magassag);

}

};


sort(osszes.begin(),osszes.end(),CA);


De erre is hibát dob (CA was not declared):(

2019. ápr. 14. 23:36
 2/2 anonim ***** válasza:

Nem emlékszem pontosan már hogy van, főleg nem c++ban, így az okosabbak ne rágják le a fülem, csak iránymutatásnak adom.

Először is a sorthoz az Adatok osztály (struct...) operátorát kellene szerintem, mégpedig

bool Adatok::operator<(Adatok& const a) const jelleggel ha jól rémlik (egy paramétert adsz át, mert a másik a példány amin hívja)

és talán??? return this.magassag < a.magassag


Ami a lényeges: az adatok struct operátorát írd felül, ne globálisan, aztán a felülíró 1 paramétert vesz át, aminek szabály szerint const-ot is tudnia kell átvenni, és végül a this pointerrel éred el a hívott példányt.


Remélem érthető, és nem írtam túl hülyeséget, már nagyon régen cpp-ztem.

2019. ápr. 15. 00:26
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!