Anwendung von tr1::array
-
Ich werde nicht schlau aus dem neuen Array.
Ich habe folgenden Code
class A{ private: gl_tex *texptr; public: void render_tex(); } A::render_tex(){ ... gl_tex = new bool[n] ... }n ist ein integer und wird dynamisch festgelegt.
Ich möchte es am besten durch array ersetzen aber irgendwie verlangt er von mir immer noch eine Größe.Ich möchte mir das array aneignen weil ich nicht später selber den Speicher freigeben muss weil ich noch als Anfänger zu viele leaks verursache die schwer zu finden sind. Kann ich das array auf mein Problem anwenden? Wie würde der code aussehen?
-
Wenn du ein dynamisches Array haben möchtest muss du std::vector<> nehmen.
std::array<typ, groeße> verlangt eine Konstante als Größe.
-
Roger Wilco schrieb:
Wenn du ein dynamisches Array haben möchtest muss du std::vector<> nehmen.
std::array<typ, groeße> verlangt eine Konstante als Größe.
Gibt es eine Möglichkeit alle Elemente eines Vektors auf Null zu setzen?
-
std::fill
-
Wie wäre es mal, wenn du dir einfach mal die vector-Klasse anschaust?

http://www.cplusplus.com/reference/stl/vector/vector/
std::vector<bool> v(n, false); // n-Elemente, mit false vorbelegen
-
Artchi schrieb:
Wie wäre es mal, wenn du dir einfach mal die vector-Klasse anschaust?

http://www.cplusplus.com/reference/stl/vector/vector/
std::vector<bool> v(n, false); // n-Elemente, mit false vorbelegenWird es auch im Nachhinein funktionieren?
Sonst mache ich sowas bei arrays mit memset
-
tr1__array schrieb:
Wird es auch im Nachhinein funktionieren?
std::fill 
-
_matze schrieb:
tr1__array schrieb:
Wird es auch im Nachhinein funktionieren?
std::fill 
ups hatte was überlesen. Danke an alle Antworten.
-
Artchi schrieb:
std::vector<bool> v(n, false); // n-Elemente, mit false vorbelegenvector<bool>würde ich nicht benutzen, weil es eine eher weniger gelungene Spezialisierung ist.
-
Michael E. schrieb:
vector<bool>würde ich nicht benutzen, weil es eine eher weniger gelungene Spezialisierung ist.Genaueres siehe hier.
Leider gibt es in der Standardbibliothek nicht wirklich Alternativen. Möglicherweise ist
std::vector<bool>sogar akzeptabel, wenn die spezielle Semantik einen nicht behindert. Ansonsten könnte man als einfachen Workaround eine Struktur mit einembool-Member in Betracht ziehen.
-
Nexus schrieb:
Michael E. schrieb:
vector<bool>würde ich nicht benutzen, weil es eine eher weniger gelungene Spezialisierung ist.Genaueres siehe hier.
Leider gibt es in der Standardbibliothek nicht wirklich Alternativen. Möglicherweise ist
std::vector<bool>sogar akzeptabel, wenn die spezielle Semantik einen nicht behindert. Ansonsten könnte man als einfachen Workaround eine Struktur mit einembool-Member in Betracht ziehen.Ich nehme meistens einfach
vector<char>.