algorithm 示例

绑定函数

#include<function>
std::bind2nd(const&funclift,_Ty& right);
std::bind1nd(const&funclift,_Ty& left);
std::bind2nd(std::less<int>(),num));

std::count_if(iterator,iterator,func);
std::count_if(iterator,iterator,std::bind2nd(std::less(),num));//两个参数变为一个

not1(func&);//函数返回后的bool取反

std::count_if(iterator,iterator,std::not1(std::bind2nd(std::less<int>(),num)));
以下是 Dijkstra's algorithm 的图示例: 假设我们要找到从节点 A 到节点 F 的最短路径,如下图所示: ![Dijkstra's algorithm example](https://cdn.jsdelivr.net/gh/1096749322/pictures/2021-11-01-10-59-23-image.png) 首先,我们将起始节点 A 的距离设置为 0,其余节点的距离设置为无穷大。然后,我们从 A 开始,遍历它的邻居节点 B 和 D,并更新它们的距离。这样,B 的距离变为 4,D 的距离变为 2,如下图所示: ![Dijkstra's algorithm example 2](https://cdn.jsdelivr.net/gh/1096749322/pictures/2021-11-01-11-00-27-image.png) 接下来,我们选择距离最短的节点 D,并遍历它的邻居节点 C 和 E,并更新它们的距离。这样,C 的距离变为 5,E 的距离变为 6,如下图所示: ![Dijkstra's algorithm example 3](https://cdn.jsdelivr.net/gh/1096749322/pictures/2021-11-01-11-00-44-image.png) 现在,我们选择距离最短的节点 B,并遍历它的邻居节点 C 和 F,并更新它们的距离。这样,C 的距离变为 7,F 的距离变为 8,如下图所示: ![Dijkstra's algorithm example 4](https://cdn.jsdelivr.net/gh/1096749322/pictures/2021-11-01-11-01-01-image.png) 最后,我们选择距离最短的节点 C,并遍历它的邻居节点 F,并更新它的距离。这样,F 的距离变为 9,如下图所示: ![Dijkstra's algorithm example 5](https://cdn.jsdelivr.net/gh/1096749322/pictures/2021-11-01-11-01-18-image.png) 现在,我们已经找到了从节点 A 到节点 F 的最短路径,它的距离为 9,路径为 A → D → E → F。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值