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

expected ';' at end of declaration /vector /c++

当我尝试在 C++ 中初始化一个 int 向量时,我总是得到 "expected ';' at end of declaration" 错误。

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

vector<int> v{1,2,3,4,5,6,7,8,9};

$ g++ -o test test.cpp

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

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

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

-std=c++11

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++0xc++11c++1y(可能还有 c++14)取决于主要在编译器版本上,因为它们是连续引入的。