Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet c++-ben a "map"...

Hogyan lehet c++-ben a "map" típusba saját osztály tenni?

Figyelt kérdés

Tehát nekem nem egy egyszerű map<int,char> m= {{1, 'a'}, {3, 'b'}, {5, 'c'}, {7, 'd'}};

kellene, hanem egy map<int, sajat_osztaly>.


2017. ápr. 15. 01:40
 1/9 anonim ***** válasza:
Nem értem a kérdést igazából, sablon érdekel, vagy egy olyan map osztály, aminek van olyan függvénye, ami elfogad más osztályt?
2017. ápr. 15. 01:50
Hasznos számodra ez a válasz?
 2/9 anonim ***** válasza:
Pontosan úgy kell csinálni, ahogy leírtad! :)
2017. ápr. 15. 01:52
Hasznos számodra ez a válasz?
 3/9 A kérdező kommentje:

Amikor a map-ot létrehozom, akkor hoznám létre az osztály tipusú változókat.

tehát pl.:

map<int,sajatOsztaly> m= {{1, new sajatOsztaly(2,3,"valami", 'q')}....

2017. ápr. 15. 02:34
 4/9 anonim ***** válasza:
Egy osztály egy referenciatípus definíciója.
2017. ápr. 15. 12:31
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:
És mi a gond?
2017. ápr. 15. 13:27
Hasznos számodra ez a válasz?
 6/9 anonim ***** válasza:

Mutatót akarsz tárolni, de template paraméterben nem mutatót adtál meg.


Vagy így csináld:

map<int,sajatOsztaly*> m= {{1, new sajatOsztaly(2,3,"valami", 'q')}


Vagy így:

map<int,sajatOsztaly> m= {{1, sajatOsztaly(2,3,"valami", 'q')}


Viszont ha mutatót használsz, akkor neked kell felszabadítani utólag a memóriát. Ha mindenáron mutatót akarsz használni, akkor így csináld és akkor nem kell a memóriával foglalkoznod:

map<int, shared_ptr<sajatOsztaly>> m = { { 1, make_shared<sajatOsztaly>(sajatOsztaly(2,3,"valami", 'q')) } };

... bár ebbe is bele lehetne kötni, de szerintem a te céljaidnak megfelel.


Forrás fájl elejére írd be:

#include <memory>

using namespace std;

2017. ápr. 15. 16:48
Hasznos számodra ez a válasz?
 7/9 A kérdező kommentje:

Köszi mindenkinek a választ. :)

A probléma nektek köszönhetően megoldódott,mert egy csillagot kellett volna tenni még az egészhez.

2017. ápr. 16. 23:12
 8/9 anonim ***** válasza:
Azért remélem nem annyit sikerült megérteni ebből, hogy "csillagot kellett odatenni".
2017. ápr. 17. 08:03
Hasznos számodra ez a válasz?
 9/9 A kérdező kommentje:
Nemcsak annyit sikerült, nyugi.
2017. ápr. 17. 15:20

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!