vector 无法通过列表初始化 (m2 mac + code runner / g++)

文章讲述了在mac环境下,使用VSCode的Coderunner插件编译C++代码时遇到的非聚合类型不能用初始化列表的错误。问题源于缺少C++11的支持。解决方案是修改Coderunner的cpp执行参数,添加`-std=c++11`以启用C++11标准。
摘要由CSDN通过智能技术生成

问题来源

当试图通过列表初始化 vector 时遇到的报错:

error: non-aggregate type 'vector<int>' cannot be initialized with an initializer list
    vector<int> num = {2, 7, 11, 15};

编译环境

  • m2 mac
  • vscode + code runner 插件

解决问题

可能是 mac 芯片/系统 或者 code runner 参数问题,所以先找到 code runner 插件的配置设置,找到 cpp 文件的启动参数,下面省略:

  "code-runner.executorMap": {
    "javascript": "node",
    "java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
    "c": "cd $dir && gcc $fileName -o -std=c++11 -g $fileNameWithoutExt && $dir$fileNameWithoutExt",
    "zig": "zig run",
    "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",

将其中的 cpp (不是 c) 改成这样,加入 c++11 支持就可以了:

"cpp": "cd $dir && g++ $fileName -g -Wall -std=c++11 -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值