class Graphs
{
public:
map<int,Node*>* nodes;
set<Edge>* edges;
Graphs()
{
this->nodes=new map<int,Node*>();
this->edges=new set<Edge>();
}
};
class Node
{
public:
int value;
int out;
int in;
list<Node>nexts;
list<Edge>edges;
Node(int v)
{
this-> value=v;
out=0;
in=0;
}
};
class Edge
{
public:
int weight;
Node* from;
Node* to;
Edge(int w ,Node* f ,Node* t)
{
weight=w ;
from=f ;
to=t ;
}
};
void createGraph(int num[][3],int len)
{
Graphs* gr=new Graphs();
for(int i = 0;i < len;i++) {
int res=num[i][0];
int from=num[i][1];
int to=num[i][2];
if(gr->nodes->find(from)==gr->nodes->end())
{
gr->nodes->insert(pair<int,Node*>(from,new Node(from)));
}
if(gr->nodes->find(to)==gr->nodes->end())
{
gr->nodes->insert(pair<int,Node*>(to,new Node(to)));
}
Node* fromNode=*(gr->nodes->find(from)).second;
}
}
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
二维数组转图的函数,怎么根据key获取到map容器的value
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- MarkHan_ 2023-02-25 13:00关注
该回答引用GPTᴼᴾᴱᴺᴬᴵ
在C++中,可以通过使用 map 容器的 operator[] 运算符来获取一个指向 map 容器中指定键值的引用。在您的代码中,您可以通过以下方式获取一个指向节点的引用:Node* fromNode = (*gr->nodes)[from];
此代码行将从 gr->nodes 中获取键为 from 的节点,并返回对该节点的引用。
类似地,您可以通过以下方式获取到指向 to 节点的引用:
Node* toNode = (*gr->nodes)[to];
希望这可以帮助您获取节点的引用并完成您的函数。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 这个如何解决详细步骤
- ¥15 在微信h5支付申请中,别人给钱就能用我的软件,这个的所属行业是啥?
- ¥30 靶向捕获探针设计软件包
- ¥15 别人给钱就能用我的软件,这个的经营场景是啥?
- ¥15 react-diff-viewer组件,如何解决数据量过大卡顿问题
- ¥20 遥感植被物候指数空间分布图制作
- ¥15 安装了xlrd库但是import不了…
- ¥20 Github上传代码没有contribution和activity记录
- ¥20 SNETCracker
- ¥15 数学建模大赛交通流量控制