预期的 ';'在声明结束时 /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++0x
、c++11
或 c++1y
(可能还有 c++14
)取决于主要在编译器版本上,因为它们是连续引入的。
当我尝试在 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++0x
、c++11
或 c++1y
(可能还有 c++14
)取决于主要在编译器版本上,因为它们是连续引入的。