Ich suche nach einer Methode für die Initialisierung einer komplexen Struktur, die Vektor in einer einzelnen Zeile enthält.
Zum Beispiel, wenn ich diese Struktur habe:
%Vor% Ich kann C auf diese Weise initialisieren: C c = {{0.0,0.1},{1.0,1.1}};
Aber was, wenn ich eine Struktur so initialisieren muss?
%Vor%Ich muss es in einer einzigen Zeile machen, weil ich den Benutzern meiner Anwendung erlauben möchte, alle Anfangswerte in einem einzigen Feld anzugeben. Und natürlich würde ich eine Standardmethode bevorzugen und keine benutzerdefinierte.
Danke!
Wenn Sie nicht C ++ 11 verwenden (damit Sie den Vorschlag von Mankarse nicht verwenden können), kann boost helfen:
%Vor%Sie müssen nur einen der Konstruktoren verwenden, wenn Sie nicht haben die neue C ++ 11-Initialisierungssyntax.
%Vor%Der obige Vektor hat 100 Elemente. Es gibt keine Möglichkeit, jedes Element in der Konstruktion eines Vektors eindeutig zu initialisieren.
Sie könnten ...
machen %Vor%oder wenn Sie immer die Anzahl der Elemente kennen, verwenden Sie ein std :: -Array, das Sie wie gewünscht initialisieren können.