C++14环境下vector初始化列表初始化报错求助
解决vector初始化列表编译错误的方案
核心问题
你用{}初始化vector<int>的语法是C11及以后版本才支持的特性,虽然你的编译器支持C14,但之前的编译命令没有正确指定启用C11+标准,导致编译器默认使用了不支持该特性的旧标准(如C98),从而触发报错。
正确编译命令
你之前的clang++ -std=c++ <filename>命令格式错误,必须明确指定具体的C++版本:
- 启用C++11:
clang++ -std=c++11 vectors.cpp -o vectors - 启用C++14:
clang++ -std=c++14 vectors.cpp -o vectors - 也可以直接用更高兼容版本:
clang++ -std=c++17 vectors.cpp -o vectors(你的C++14版本编译器通常完全支持)
额外检查项
- 确保代码开头包含vector头文件:
#include <vector>
- 如果没有
using namespace std;,要写成std::vector<int> arr3 = {3, 6, 9, 12, 15};
内容的提问来源于stack exchange,提问作者Jatin Bawne
相关产品推荐
相关产品推荐

