You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++给vector赋值时报错expected expression的问题如何解决

错误原因

你第15行使用的vector<int>大括号赋值语法属于C++11标准新增的初始化列表特性,如果编译时未开启C++11及更高版本的标准支持,编译器无法识别该语法,就会抛出expected expression错误。

解决方案

方案1:开启编译器C++11及以上标准支持(推荐)

无需修改代码,仅调整编译配置即可:

  • GCC/Clang编译器:编译命令追加参数-std=c++11,如需使用更新特性可替换为-std=c++14/-std=c++17/-std=c++20,示例命令:
    g++ test.cpp -o test -std=c++11
    
  • Visual Studio编译器:进入项目属性→C/C→语言→C语言标准,选择ISO C++11及以上版本即可。

方案2:修改代码适配旧C++标准

如果无法开启新版标准支持,可以用两种写法替换原有14、15行代码:

  1. 逐个插入元素
vector<int> m_Lenght;
m_Lenght.push_back(0);
m_Lenght.push_back(31);
m_Lenght.push_back(28);
m_Lenght.push_back(31);
m_Lenght.push_back(30);
m_Lenght.push_back(31);
m_Lenght.push_back(30);
m_Lenght.push_back(31);
m_Lenght.push_back(31);
m_Lenght.push_back(30);
m_Lenght.push_back(31);
m_Lenght.push_back(30);
m_Lenght.push_back(31);
m_Lenght.push_back(31);
  1. 数组中转批量赋值
int month_len[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 31};
vector<int> m_Lenght(month_len, month_len + sizeof(month_len)/sizeof(int));

内容的提问来源于stack exchange,提问作者Антон Ананьев

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 23:36:05