错误:应为(‘;)’;在‘之前<’;代币 我正在努力学习C++的一本书。我使用std::initializer\u list编写了这个类定义,以便用元素列表初始化向量。Vector.h文件如下所示: class Vector { public: Vector(int s); ~Vector(); Vector(std::initializer_list<double>); void push_back(double); double& operator[](int i); int size(); private: double* elem; int sz; };

错误:应为(‘;)’;在‘之前<’;代币 我正在努力学习C++的一本书。我使用std::initializer\u list编写了这个类定义,以便用元素列表初始化向量。Vector.h文件如下所示: class Vector { public: Vector(int s); ~Vector(); Vector(std::initializer_list<double>); void push_back(double); double& operator[](int i); int size(); private: double* elem; int sz; };,c++,compiler-errors,C++,Compiler Errors,我正在使用Code::Blocks width GNU GCC编译器,并且没有激活额外的编译器标志。我已经尝试过在代码中检查“有G+遵循C++ +0xISO C++语言标准[-STD= C++ +0x]”:块,但是错误仍然存在,三个新的增加。 您丢失了包含< /代码> lst.size()而不是lst.size 和lst.end()而不是ls.end()。 请记住在编译中启用c++11。您确实为?lst.size()包含了正确的头文件,然后下一行lst.size,是哪一个?请发布完整的代码,以便

我正在使用Code::Blocks width GNU GCC编译器,并且没有激活额外的编译器标志。我已经尝试过在代码中检查“有G+遵循C++ +0xISO C++语言标准[-STD= C++ +0x]”:块,但是错误仍然存在,三个新的增加。

您丢失了<代码>包含< /代码>
lst.size()
而不是
lst.size
lst.end()
而不是
ls.end()

请记住在编译中启用c++11。

您确实为?
lst.size()
包含了正确的头文件,然后下一行
lst.size
,是哪一个?请发布完整的代码,以便我们可以复制。还要添加您的编译器版本和传递的标志。一些编译器还不支持
std::initializer\u list
,或者需要标志来启用该支持。我已尝试添加
#include
,但仍然存在错误。我使用的GNC GCC编译器在代码::块中没有激活额外的编译器标志。谢谢。我已编辑代码以使用
lst.size()
和拼写错误。我还添加了
#include
。C++ C++ C++语言中的错误是:(你是否添加了STD=C++ +0x到C++的11个特性?我刚刚检查了一个选项,上面写着“G+++遵循C++0x ISO C++语言标准[-STD= C++ +0x]”。现在我已经在打开的帖子中加了2个错误加上了3个新的错误://<代码> /Media/PytoCtos/C/Test/vector。H 6错误:预期的““before”我已经关闭并再次打开代码::Blocks,它现在可以工作了(o_o)。非常感谢你的帮助
error: expected ‘)’ before ‘<’ token
#include "Vector.h"
#include <stdexcept>

using namespace std;

Vector::Vector(int s)
{
    if(s < 0)
    {
        throw length_error("Vector::operator[]");
    }
    elem = new double[s];
    sz = s;
}

Vector::~Vector()
{
     delete[] elem;
}

Vector::Vector(std::initializer_list<double> lst)
{
    elem = new double[lst.size()];
    sz = static_cast<int>(lst.size());

    copy(lst.begin(), lst.end(), elem);
}

double& Vector::operator[](int i)
{
    if(i<0 || i>=size())
    {
        throw out_of_range("Vector::operator[]");
    }
    return elem[i];
}

int Vector::size()
{
    return sz;
}
error: expected constructor, destructor, or type conversion before ‘(’ token