我有一个类Pixel
和一个类Image
,其中的函数用于更新像素线。我想初始化像素线。我的问题是初始化 vector 。其实我有这个:
bool UpdateLine(std::vector<Pixel>& line, int nb)
{
bool noError = true;
line = new std::vector<Pixel>(nb);
// Do some stuff
return noError;
}
当我尝试这个时,我有:
no viable overloaded '='
如何初始化 vector ?
最佳答案
您正在使用的表达式:
new std::vector<Pixel>(nb)
返回指向std::vector<Pixel>
的指针(即: std::vector<Pixel> *
),而不是 std::vector<Pixel>
,这就是您所需要的。
必须区分初始化和分配:您分配到line
而不是初始化它。
您可以创建一个新 vector 并将其分配给 line
通过赋值运算符:
line = std::vector<Pixel>(nb);
关于c++ - 初始化通过引用传递的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46423064/