Vektor schnell und praktikabel mit füllen...
-
Guten Abend,
Ich benötige ein zweidimensionalen Vektor,
den ich einfach mit Werten füllen kann.Werte: (0,1) , (3,8) , (4,4) , (4,3) , (2,7)
Ich möchte nicht ständig MeinVektor[7][0] = 5; MeinVektor[7][1] = 9; ... im Quelltext stehen haben.

-
naja dann machst du dir ne klasse mit namen Vector2d, machst eine funktion namens setCoord(int, int, int, int), überlädst nen paar operatoren und fertig

-
hi!
da wäre ja schon eine map besser zu verwenden?!?
cu
-
Bertold. Wie stellst du dir das denn vor? Du musst schon sagen in welcher Form du die initialisierenden Werte vorliegen hast, damit man dir eine elegante Lösung vorschlagen kann. Im Moment fällt mir nur boost::assign ein.
-
Wenn es dir nur darum geht die Daten nicht im Code stehen zu haben, hielte ich es für elegant diese aus einer Datei einzulesen, ausserdem kannst du dann später ohne das Prog neu Kompilieren zu müssen beliebig Vektoren hinzufügen, ändern und entfernen. Es fragt sich sich nur, ob sich der Aufwand für dich lohnt.
-
bertold schrieb:
...Ich benötige ein zweidimensionalen Vektor...MeinVektor[7][0] = 5; MeinVektor[7][1] = 9;...
sag mal, meinst du 'vector' oder 'array' ? sind ja doch ne handvoll unterschiede
-
class Vektor2D { public: Vektor2D(int x, int y) : m_x(x), m_y(y) {} int &operator[] (unsigned index) { if (index == 0) return &m_x; else if (index == 1) return &m_y; throw std::exception("invalid index"); ] private: int m_x, m_y; }; ... Vektor2D myVek(2, 3); myVek[0] = 3;sowas vielleicht?=
-
Korbinian schrieb:
class Vektor2D { public: Vektor2D(int x, int y) : m_x(x), m_y(y) {} int &operator[] (unsigned index) { if (index == 0) return &m_x; else if (index == 1) return &m_y; throw std::exception("invalid index"); ] private: int m_x, m_y; }; ... Vektor2D myVek(2, 3); myVek[0] = 3;sowas vielleicht?=
Mal abgesehen, dass es IMO keinen Sinn macht bei nem 2D Vektor den operator[] zu überladen, gibst du die Adresse zurück. Du musst aber den Wert zurückgeben.
-
jo kann sein. hab das shcon länger nicht mehr gemacht

-
Korbinian schrieb:
jo kann sein. hab das shcon länger nicht mehr gemacht

Schlechte Antwort. Du hättest besser sagen sollen, dass du den absichtlich eingebaut hast um zum denken anzuregen ;D.
-
wie wärs mit
std::vector<std::pair> lala; lala.push_back(std::pair(1,2));oder so ähnlich