2013-07-08 4 views
4
#include <vector> 
... 
//inside main function 
vector<int> vi3 = {42,42,42,42,42,42,42,42,42,42}; 

J'apprends le C++, je pensais qu'il était possible d'initialiser un vecteur comme ça ... Est-ce que je fais quelque chose de mal? Je connais les autres façons d'initialiser un vecteur. Dans le livre que je lis, il dit qu'il peut aussi être fait comme ceci:C++ Initialisation des vecteurs

vector<int> vi3{42,42,42,42,42,42,42,42,42,42}; 

Il est la première chose sur le livre qui m'a donné une erreur. Qu'est-ce que je fais mal?

+4

Vous devrez indiquer à votre compilateur que vous utilisez C++ 11. – trojanfoe

+0

Et assurez-vous que ce n'est pas visuel studio doctorlove

+0

@SadSeven quel compilateur utilisez-vous? – doctorlove

Répondre

10

On ne sait pas quel compilateur que vous utilisez, mais les versions de Visual Studio de Microsoft avant 2013 preview ne prennent pas en charge la syntaxe d'initialisation uniforme {}

Si vous utilisez gcc vous devez dire d'utiliser C++ 11:

-std=c++0x 
+1

Le CTP l'a fait, mais n'avait pas de support de bibliothèque. '-std = C++ 11' a aussi quelques avantages sur' -std = C++ 0x'. – chris

+0

J'utilise Visual Studio 2012, désolé. Tu as raison. Merci beaucoup. – SadSeven

+0

Je vais essayer ce chris, merci. – SadSeven