Also, wie initialisiere ich ein Array?
Verwenden der normalen Initialisierungslisten-Syntax:
%Vor% Beachten Sie, das funktioniert nur in C ++ 11. Vorher müssen Sie boost::array
verwenden und in einer Funktion initialisieren.
Wenn Ihr Compiler die Initialisierung von C ++ 11 nicht unterstützt, müssen Sie jedes Feld einzeln zuweisen:
%Vor%Wenn Ihr aktueller Compiler C ++ 11 noch nicht unterstützt, können Sie den Vektorinhalt mit Standardalgorithmen und Funktoren initialisieren:
%Vor%Vorheriges Snippet-Beispiel hier .
Ja, ist irgendwie hässlich (zumindest sieht es für mich hässlich aus) und macht die Arbeit nicht zur Kompilierzeit; aber es macht die Arbeit, die Sie im Konstruktor brauchen.
Wenn Sie eine andere Art von Initialisierung benötigen (Initialisierung mit geraden / ungeraden Zahlen, Initialisierung mit zufälligen Werten, Start mit einem anderen Wert, etc ...), müssen Sie nur den Functor ändern, und dies ist der einzige Vorteil hässlicher Ansatz.
Sie können die Array-Elemente wie folgt mit dem C ++ 11-Compiler initialisieren, indem Sie die Option -std = c ++ 11 oder -std = gnu ++ 11 verwenden
%Vor%Tags und Links c++