Jobs[this->uBound] = job; this-6ren">
gpt4 book ai didi

c++ - 无法直接分配元素 std::array,它说没有运算符 "="匹配

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:18:34 24 4
gpt4 key购买 nike

在我的 processor类有一个数组<Job, 10> .

void Processor::addJob(Job job) {
this->Jobs[this->uBound] = job;
this->uBound++;
}

我想在我的 processor 中添加一个新元素类(class)。为此,我创建了新的 private: int uBound = 0我的属性(property)processor类(class)。我直接分配 this->Jobs[this->uBound] = job; .它给了我一个错误。它说Error : no operator "=" matches these operands. operand types are: std::array<Job, 10U> = Job .

所以我尝试使用 this->Job->assign(Job) ;它分配给了我的所有元素 Jobs ,但我只想要一个元素。

这里是 Job 的类

class Job {
public:
string name;

public :
int length = 0;

public:
bool used = false;

public:
Job();

public:
Job(string n, int l);


~Job();
};

这里是Processor

class Processor {

private:
int turnArround_time = 0;

private:
int uBound = 0;

public:
std::array<Job, 10> *Jobs = new std::array<Job, 10>();

public:
Processor();

public:
void addJob(Job job);

public:
int getTurnArround();




~Processor();
};

我不知道这个错误是什么意思。

有没有其他方法可以添加 Job反对 Processor->Jobs ?任何帮助表示赞赏,谢谢...

最佳答案

正确的语法应该是这样的

( *this->Jobs )[this->uBound] = job;

虽然不清楚为什么动态分配数组。

当然你也可以这样写:)

this->Jobs[0][this->uBound] = job;

但这只会让代码的读者感到困惑。

关于c++ - 无法直接分配元素 std::array,它说没有运算符 "="匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29917064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com