在3个弦向量中寻找连接
Finding connections in 3 vectors of string
我用c++写了一些代码,它可以找到两个城市之间由道路或航班连接的最短路径。城市之间可以通过直航或间接航班连接。用户可以这样输入航班:
AAA AAG 300
AAA AAB 1
AAA AAG 298
AAB AAC 1
AAB AAG 297
AAC AAD 1
AAC AAG 296
AAD AAE 1
AAD AAG 295
AAE AAF 1
AAE AAG 294
AAF AAG 1
第一个字符串为出发城市,第二个字符串为目的地,数字为航班时间。我将这些值存储在3个向量中:
vector<string> leavingCities;
vector<string> destCities;
vector<int> flightTimes;
我很难在这些向量中找到直飞航班——我的意思是有时从AAA到AAG的直飞时间比通过AAB、AAC、AAD、AAE和AAF的直飞时间要大得多,然后我必须选择更短的路线并存储我旅行的城市。有没有办法找到最短的时间和路线?航班名单可以变化,不必像这样。也许有更好的容器来存储这样的数据?
你真的应该把你的问题分解成理解你将如何解决它,然后进入代码。如果你不知道如何解决它,通常只是写代码是没有用的。
首先,你的问题可以被归类为在图中寻找最短路径算法。维基百科上有一整页的内容,但Dijkstra的算法可能是最适合你的。
一旦你理解了它是如何实现的,你就可以开始实现它了。如果你能使用它们,有很多不错的图形库,比如Boost。图,但我怀疑作为作业,你会被要求自己从头开始实现它。然而,作为一个没有经验的程序员,我不建议看Boost源代码——它们相当可怕,尽管一旦你有了更多的经验,这是一个很好的学习方式。
好运使用Dijkstra算法查找最短路径
相关文章:
- QT在错误的班级中寻找空位
- 当套接字连接断开时检测C/C++Unix
- 正在寻找C++不可变的hashset/hashmap
- 无法在windows上使用mingw将sqlite3与c连接
- 到连接组件算法的问题(递归)
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- 无法在C++中建立与MySQL数据库的连接
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 连接 dockerized 模型和 dockerized 数据库时出现"无法 SQLConnect"错误
- 使用 bfs 解决连接组件问题时得到错误的答案
- 在C++的两个字符串中连接以逗号分隔的唯一值
- 如何修复valgrind启动时的致命错误(与libc6-dbg和libc6-dbg:i386连接)
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- OSX蓝牙打开RFCOMMChannelAsync声称已连接,但未建立连接,并且从未调用过委托
- 在 libcurl 连接池中预创建连接
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- 寻找连接对象的字符串表示的惯用方法
- 寻找间接列车连接
- 在3个弦向量中寻找连接