当我尝试在c ++中初始化int的向量时,我总是得到"期望&#39 ;;'在声明结束时#34;错误。
我使用了C ++ Primer的原始代码
vector<int> v{1,2,3,4,5,6,7,8,9};
和
$ g++ -o test test.cpp
我认为这是一个愚蠢的问题,但我确信有一个&#34 ;;&#34; ...并且无法设法搜索答案。 感谢。
答案 0 :(得分:8)
g++
默认使用C ++ 03,而您尝试使用的语法来自C ++ 11。将编译行更改为:
$ g++ -std=c++11 -o test test.cpp
或者,正如我个人更喜欢的那样:
$ g++ -Wall -Werror -pedantic -std=c++1y -o test test.cpp
:)
注意:您是否使用c++0x
,c++11
或c++1y
(可能还有c++14
)主要取决于编译器版本,因为这些都是在成功中引入的。
答案 1 :(得分:4)
默认情况下,您的编译器不支持大括号初始化;这是在C ++ 11中添加的。
可能有一个命令行参数,你可以在你的编译器中使用,类似于
-std=c++11