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 |