c ++ Vektorinitialisierung

8

Ich habe die folgende Vektorinitialisierung mit Werten in Code :: Blocks und MingW Compiler verwendet:

%Vor%

Danach musste ich den Code in ein Visual Studio Projekt (c ++) verschieben und ich habe versucht zu bauen. Ich habe den folgenden Fehler erhalten:
lokale Funktionsdefinitionen sind illegal

Visual Studio-Compiler unterstützt diese Art der Initialisierung nicht? Wie muss ich den Code ändern, damit er kompatibel ist?
Ich möchte den Vektor initialisieren und gleichzeitig mit Werten füllen, genau wie ein Array.

    
cen 05.03.2012, 23:36
quelle

5 Antworten

15

Visual C ++ unterstützt noch keine Initialisierungslisten.

Der einfachste Weg, um zu dieser Syntax zu gelangen, besteht darin, ein Array zu verwenden, um den Initialisierer zu halten und dann den Bereichskonstruktor zu verwenden:

%Vor%     
James McNellis 05.03.2012, 23:40
quelle
4

Sie können fast das in VS2013 tun

%Vor%

Vollständiges Beispiel

%Vor%     
CCondron 25.09.2014 17:40
quelle
1

Eine andere Alternative ist boost::assign :

%Vor%     
J.N. 05.03.2012 23:47
quelle
0

Ich habe ein Makro definiert:

%Vor%

und verwende so:

%Vor%     
yane 26.11.2017 04:07
quelle
-2

Wenn Sie Visual Studio 2015 verwenden, ist die Methode zum Initialisieren von vector mit list :

%Vor%

Also, der erste Parameter (3) gibt die Größe an und die Liste ist der zweite Parameter.

    
Jon 29.09.2016 05:25
quelle