我有一些简单的代码,例如下面的例子。
如何在此代码中使用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
}
答案 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;
}
}