Ich habe vorher C benutzt (embedded stuff), und ich kann meine Arrays so initialisieren:
%Vor% d. Ich kann Indizes innerhalb des Initialisierers spezifizieren.
Derzeit lerne ich Qt/C++
, und ich kann nicht glauben, dass dies in C ++ nicht unterstützt wird.
Ich habe diese Option: -std=gnu++0x
, aber es wird nicht unterstützt. (Ich weiß nicht, ob es in C ++ 11 unterstützt wird, weil Qt mit gcc 4.7.x fehlerhaft arbeitet)
Also, wird es wirklich nicht in C ++ unterstützt? Oder vielleicht gibt es eine Möglichkeit, es zu aktivieren?
UPD: momentan möchte ich const array initialisieren, damit std::fill
nicht funktioniert.
Nach Jahren habe ich es nur zufällig getestet, und ich kann bestätigen, dass es in g++ -std=c++11
funktioniert, g ++ Version ist 4.8.2.
hm, du solltest std :: fill_n () für diese Aufgabe verwenden ...
wie hier angegeben Ссылка die angegebenen Inits (Erweiterungen) sind nicht in GNU C ++ implementiert
edit: von hier übernommen: initialisiere eine const Array in einem Klasseninitialisierer in C ++
Wie ein Kommentar sagte, können Sie std: vector verwenden, um das gewünschte Ergebnis zu erhalten. Du könntest const immer noch anders herum durchsetzen und fill_n verwenden.
%Vor%Nein, das ist in C ++ nicht möglich. Sie können jedoch den Algorithmus std :: fill verwenden, um die Werte zuzuweisen:
%Vor%Es ist nicht so elegant, aber es funktioniert.