预期';' 在声明/ vector/c ++结束时

spi*_*oyo 8 c++ vector

当我尝试在c ++中初始化int的向量时,我总是得到"预期的"; 在声明结束时"错误.

我使用了C++ Primer的原始代码

vector<int> v{1,2,3,4,5,6,7,8,9};
Run Code Online (Sandbox Code Playgroud)

$ g++ -o test test.cpp
Run Code Online (Sandbox Code Playgroud)

我认为这是一个愚蠢的问题,但我确信有一个";"......并且无法设法搜索答案..谢谢.

Bar*_*icz 9

g++默认情况下假设C++ 03,并且您尝试使用的语法来自C++ 11.将编译行更改为:

$ g++ -std=c++11 -o test test.cpp
Run Code Online (Sandbox Code Playgroud)

或者,我个人更喜欢:

$ g++ -Wall -Werror -pedantic -std=c++1y -o test test.cpp 
Run Code Online (Sandbox Code Playgroud)

:)

注意:您是否使用c++0x,c++11c++1y(并且可能c++14)主要取决于编译器版本,因为这些是在成功中引入的.


Bat*_*eba 5

默认情况下,您的编译器不支持大括号初始化;这是在 C++11 中添加的。

可能有一个命令行参数可以在编译器中使用,类似于

-std=c++11