链表:无法访问另一个结构中的结构向量

Linked lists: Unable to access a vector of structs within another struct

本文关键字:结构 向量 另一个 访问 链表      更新时间:2023-10-16

>我有一个链表,节点由以下结构构建:

struct node{
    Instr anInstr;
    node *next;
    std::vector<dependency *> instrDep;
};

矢量是一组额外的链接,用于将元素连接到一组其他元素。因此,例如,元素 5 将以正常的链表方式使用 *next 链接到元素 6,但随后我想使用单独的方法将元素 5 连接到各种其他元素。

我选择的方法是使用结构向量(我需要在每个连接的额外结构中提供一些额外的信息)。 下面是向量中使用的结构:

struct dependency{
    struct node *pDependency;
    short delay;
    dependencyType depType;
};

我在创建额外的连接时没有问题,但是之后再次访问它们时遇到了问题,例如

cout << temp->instrDep.delay << endl;

其中 temp 是原始节点,instrDep 是依赖结构,给我:

错误:"类 std::vector"没有名为"延迟"的成员

有什么想法吗????

您缺少索引。此外,由于向量包含指针,因此需要使用->运算符。要访问向量中的第 n 个元素,请使用

cout << temp->instrDep[n]->delay << endl;

(假设temp是指向node的指针)