问题描述
所以我一直在阅读多本(并重新发送)C++ 书籍并学习向量,他们都告诉我像这样定义一个向量:
vectorv1 = {4 ,3 ,5};
但是当我编译它时(我在代码块中使用 gnu gcc 编译器)它出现了这个错误
在 c++ 98 中,'v1' 必须由构造函数初始化,而不是由 '{...}'我还在下面得到另一个说:无法将{4, 3, 5}"从大括号括起来的初始化列表"转换为std::vector v1"
如果你能帮助我,我将不胜感激.我确实包含了矢量库.
你使用的初始化叫做initializer list
并且支持 c++11 以后.
为了确保代码被编译,请使用 C++11
或更高版本的 -std
选项.或者一般来说,不要使用C++98
.
如果您使用的是 g++,请阅读:使用 g++ 编译 C++11
来自评论 OP 正在使用代码块.在点击编译按钮之前,您可以使用以下步骤:(来源:如何为 Code::Blocks 编译器添加 C++11 支持?)
- 转到工具栏 -> 设置 -> 编译器
- 在Selected compiler"下拉菜单中,确保选择了GNU GCC Compiler"
- 在其下方,选择编译器设置"选项卡,然后选择下方的编译器标志"选项卡
- 在下面的列表中,确保选中让 g++ 遵循 C++11 ISO C++ 语言标准 [-std=c++11]"框
- 点击确定保存
so ive been reading multiple (and resent) c++ books and learning about vectors and they all are telling me to define a vector like this:
vector<int> v1 = {4 ,3 ,5};
however when i compile it (Im using gnu gcc compiler in codeblocks) it comes up with this error
if you could help me it'd be much appreciated. And i did include the vector library.
Initialization used by you is called initializer list
and it is supported c++11 onwards.
To ensure code is compiled, use C++11
or later -std
option. Or in general, don't use C++98
.
If you are using g++, please read: Compiling C++11 with g++
From comments OP is using codeblocks. You can use the following steps before hitting the compile button: (Source: How can I add C++11 support to Code::Blocks compiler?)
这篇关于向量 c++ 98 错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!