1
我試圖做一個程序,探索未知大小的無向圖,並建立一個鄰接列表。通常我會做一個set<set<String>>
(房間由一個字符串標識),但我被告知這在C++中是不穩定的。什麼會是更好的數據結構?一個未知大小的無向圖的C++數據結構
我試圖做一個程序,探索未知大小的無向圖,並建立一個鄰接列表。通常我會做一個set<set<String>>
(房間由一個字符串標識),但我被告知這在C++中是不穩定的。什麼會是更好的數據結構?一個未知大小的無向圖的C++數據結構
這取決於您以後如何查詢信息。
我可以建議兩種選擇:
using namespace std;
set< pair<string,string> >
或
using namespace std;
multimap<string,string>
在第一種情況下set
,你可以檢查,如果兩個節點連接,但你需要知道兩個節點(A和B )來運行查詢。在第二種情況multimap
中,在給定節點A的情況下,您可以輕鬆獲得所有相鄰節點的迭代器。
您需要插入兩個對或使用某些規則,例如始終按字典順序添加邊。
穩定性爲什麼重要? (雖然我不確定我不知道如何確定它是如何構成鄰接列表的 - 你如何看待其中的任何東西?當然,外部結構應該是一個「地圖」或「矢量」,或者你可以索引到?) –