矢量 c 98 错误

新手上路,请多包涵

所以我一直在阅读多本(并重新发送)C++ 书籍并学习向量,他们都告诉我要定义这样的向量:

  vector<int> v1 = {4 ,3 ,5};

但是当我编译它时(我在代码块中使用 gnu gcc 编译器)它出现了这个错误

在 c++ 98 中,’v1’ 必须由构造函数初始化,而不是由 ‘{…}’ 初始化, 并且我还得到了另一个 sais: 无法从 ‘大括号括起来的初始化列表’中转换 ‘{4, 3, 5}‘到 ‘std::vector v1’

如果您能帮助我,将不胜感激。 我确实包括了向量库。

原文由 Harry the hacker 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 478
1 个回答

您使用的初始化称为 initializer list 并且从 c++11 开始支持。

为确保编译代码,请使用 C++11 或更高版本 -std 选项。或者一般来说,不要使用 C++98

如果您使用的是 g++,请阅读:使用 g++ 编译 C++11


从评论 OP 正在使用代码块。在点击编译按钮之前,您可以使用以下步骤:(来源: 如何将 C++11 支持添加到 Code::Blocks 编译器?

  1. 转到工具栏 -> 设置 -> 编译器
  2. 在“Selected compiler”下拉菜单中,确保选中“GNU GCC Compiler”
  3. 在其下方,选择“编译器设置”选项卡,然后选择下方的“编译器标志”选项卡
  4. 在下面的列表中,确保选中“让 g++ 遵循 C++11 ISO C++ 语言标准 [-std=c++11]”框
  5. 点击确定保存

原文由 Mohit Jain 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题