c++ - 初始化通过引用传递的 vector

标签 c++ vector initialization

我有一个类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/

相关文章:

C++ 将列表作为参数传递给函数

c++ - 我如何找出数组中的哪个元素具有最高值?

c++ - 循环参数宏

java - Java 的初始化 - 类 v/s 接口(interface)

arrays - 在 Swift 中按降序创建数组的最短方法

c++ - Eigen 初始化 bool 数组

c++ - libwebsockets 是否提供发布/订阅?

C++ Qt QComboBox 与 TableView

c++ - 插入到只移动类型的 vector 中

c++ - 在 Rcpp 和 C++ 之间转换 vector (使用 Rcpp::as 或 Rcpp::wrap)是否会创建一个新 vector 并复制元素?