摘要:
据 Drew 所知最短路经算法现在重要的应用有计算机网络路由算法,机器人探路,交通路线导航,人工智能,游戏设计等等。美国火星探测器核心的寻路算法就是采用的D*(D Star)算法。 最短路经计算分静态最短路计算和动态最短路计算。 静态路径最短路径算法是外界环境不变,计算最短路径。主要有Dijkstra算法,A*(A Star)算法。 动态路径最短路是外界环境不断发生变化,即不能计算预测的情况下计算最短路。如在游戏中敌人或障碍物不断移动的情况下。典型的有D*算法。 这是Drew程序实现的10000个节点的随机路网三条互不相交最短路 真实路网计算K条路径示例:节点5696到节点3006,三条最快 阅读全文
摘要:
1、不要试图重载||,&&操作符,因为它们使用短路求值法(一旦确定了布尔表达式的真假值,即使还有部分表达式没有被测试,布尔表达式也停止运算),而重载之后采用的是函数调用法。首先当函数被调用时,需要运算其所有参数,所以调用函数functions operator&& 和 operator||时,两个参数都需要计算,换言之,没有采用短路计算法。第二是C++语言规范没有定义函数参数的计算顺序,所以没有办法知道表达式1与表达式2哪一个先计算。完全可能与具有从左参数到右参数计算顺序的短路计算法相反。同样,也不要试图重载逗号(,)操作符,因为 阅读全文
摘要:
这个最好看MSDN,讲的比较清楚http://msdn.microsoft.com/en-us/library/aa366599(VS.85).aspx不过要注意以下几点:1 申请的私有内存只能被调用进程(就是call这个api的进程)使用2 HANDLE WINAPI HeapCreate( __in DWORD flOptions, __in SIZE_T dwInitialSize, __in SIZE_T dwMaximumSize);第三个参数的设置,如果指定为0的话,则堆可以在需要的情况下不断增大。Applications that need to allocate large m 阅读全文