Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » vector in einem struct füllen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.07.2010, 22:53 Uhr
~Deinhard
Gast


HI,

wie kann man einen vector in einem struct befüllen?
Bei einem Struct ohne Vektor habe ich es so gemacht:


C++:
struct waypoints
    {
        //Konstrukor des structs
        waypoints(float ein_x, float ein_y, float ein_z): x(ein_x), y(ein_y), z(ein_z)
        {
        }
        float x;
        float y;
        float z;
    };

vector<waypoints> v_waypoints;
v_waypoints.push_back(waypoints(10.0,20.0,54.5));



Und wie geht das mit einem Vector im Struct


C++:
struct attack
    {
        int prozent;
        vector<BYTE> keys;
    };
vector<attack> v_attack;
V_attack.push_back............

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.07.2010, 00:16 Uhr
0xdeadbeef
Gott
(Operator)


Ohne attack zu verändern:

C++:
v_attack.push_back(attack());

v_attack.back().prozent = 42;
v_attack.keys.push_back(waypoints(10.0, 20.0, 54.5));


Es könnte sich aber lohnen, attack einen Konstruktor zu geben. Beispielsweise

C++:
struct attack {
  template<typename iterator_t>
  attack(int pz, iterator_t keys_beg, iterator_t keys_end)
    : prozent(pz), keys(keys_beg, keys_end) { }

  int prozent;
  std::vector<BYTE> keys;
};

// ...

waypoints wp_data[] = {
  waypoints(10.0, 20.0, 54.5),
  waypoints(11.0, 21.0, 55.5),
  waypoints(12.0, 22.0, 56.5),
  waypoints(13.0, 23.0, 57.5)
};

std::vector<attack> v_attack;
v_attack.push_back(attack(42, wp_data, wp_data + 4));


Wie der Konstruktor genau aussehen sollte, hängt natürlich von deinem Use-Case ab. Im nächsten Standard wird es wohl auch Compound-Literale geben, das könnte dann je nachdem, welche Flexibilität du beim Erstellen des Objekts brauchst, eine bessere Lösung sein.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: