无法分配给int [10]类型的成员

时间:2019-05-02 08:58:02

标签: c++

我有一些简单的代码,例如下面的例子。

如何在此代码中使用this?为何作业不编译?

class Deque {
private:
    int deque[10];
    // ...

public:
    void setDeque(); 
    // ...
};

void Deque::setDeque() {
    this->deque = {0}; // ... error on this line ....
                       // 'int [10]' is not assignable
}

2 个答案:

答案 0 :(得分:7)

如错误消息所述,您不能分配给数组,但可以初始化

如果要将数组设置为特定值,请使用例如std::fill

std::fill(std::begin(deque), std::end(deque), 0);  // Set all elements of the array to zero

您还可以使用std::array,它可以根据需要分配给

答案 1 :(得分:4)

您可以使用可分配的std::array<int, 10>

否则,您必须循环播放(以某种方式):

void Deque::setDeque() {
    // std::fill_n(this->deque, 10, 0);
    for (auto& v : this->deque) {
        v = 0;
    }
}