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

标签 c++ arrays

在我的 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/

相关文章:

c++ - 如何抑制来自 ON_BLOCK_EXIT 的警告(ScopeGuard 的一部分)

c++ - 当按引用传递的参数存储在被调用者对象中,然后被调用者删除时会发生什么?

python - 如何利用所有核心来加速基于numpy 3D数组的仿真程序?

java - 带有名称的android字符串数组项

php - 数据库查询、检查和设置数组

c++ - less 如何接管控制台?

c++ - Qt - QTcpSocekt 无法检测到连接丢失

c++ - 处理字符串的类问题

java - 有没有更干净的方法来减少这个多维字节数组以删除重复项?

java - 将一维数组保存到另一个二维数组中