C++ STL集合的=运算符存在问题

C++ STL集合的=运算符存在问题,c++,set,variable-assignment,C++,Set,Variable Assignment,我遇到以下代码错误。当我在下面显示的代码末尾调用detect_H_conflicts和detect_L_conflicts,并将=运算符与msg.conflict_list_H和msg.conflict_list_L一起使用时,就会出现问题。错误为 图表.cpp:308:错误:预期 “.”标记之前的非限定id Graph.cpp:309:错误:预期 “.”标记之前的非限定id set Graph::检测\u H\u冲突(const vector&v){…} 集合图::检测冲突(const vec

我遇到以下代码错误。当我在下面显示的代码末尾调用
detect_H_conflicts
detect_L_conflicts
,并将=运算符与msg.conflict_list_H和msg.conflict_list_L一起使用时,就会出现问题。错误为

图表.cpp:308:错误:预期 “.”标记之前的非限定id
Graph.cpp:309:错误:预期 “.”标记之前的非限定id

set Graph::检测\u H\u冲突(const vector&v){…}
集合图::检测冲突(const vector&v,int c){…}
结构msg{//嵌套在Graph.h中的Graph内
int sender;//发送者id
int sender_distance;//发件人到根节点的距离
向量邻居列表;//邻居
int num_colors;//节点当前使用的颜色数;当前颜色将为[0,num_colors]
int current_color;//节点的颜色
设置conflict_list_H;//层次结构中距离较大的节点不使用的颜色
设置conflict_list_L;//层次结构中距离较大的节点不使用的颜色
};
void图::dist\u cr\u算法(int root\u节点,双p,int迭代){
//一些代码
消息;
//一些代码
//处理收到的消息
如果(!node_obj[node].message_list.empty()){

//cout您试图分配给
conflict\u list\u H
conflict\u list\u L
成员的名称
msg
是一种类型;我想您的意思是
消息
(您的对象)相反。

您试图分配给
冲突列表\u H
冲突列表\u L
成员的名称
msg
是一种类型;我想您的意思是
消息(您的对象)。

应该是:

message.conflict_list_H = detect_H_conflicts(received_H_colors);
message.conflict_list_L = detect_L_conflicts(received_all_colors, node_obj[node].l_color);
应该是:

message.conflict_list_H = detect_H_conflicts(received_H_colors);
message.conflict_list_L = detect_L_conflicts(received_all_colors, node_obj[node].l_color);

哦,我明白了,我一定很累如果你有一个区分类型和实例的命名约定,那么就很难犯这种错误。哦,我明白了,我一定很累如果你有一个区分类型和实例的命名约定,那么就很难犯这种错误。在向gether,尝试将行信息添加到发布的代码中。最简单的方法是,只需添加一条注释
//以下是第308行:“.”标记之前应为非限定id。这将帮助其他人更容易直接进入编译器抱怨的行。在一起发布代码和错误消息时,尝试添加行信息转到发布的代码。最简单的方法是,只需添加一条注释
//下面是第308行:“.”标记之前应为非限定id。这将帮助其他人直接转到编译器更容易抱怨的那一行。