2016-03-06 50 views
1

我試圖做一個程序,探索未知大小的無向圖,並建立一個鄰接列表。通常我會做一個set<set<String>>(房間由一個字符串標識),但我被告知這在C++中是不穩定的。什麼會是更好的數據結構?一個未知大小的無向圖的C++數據結構

+4

穩定性爲什麼重要? (雖然我不確定我不知道如何確定它是如何構成鄰接列表的 - 你如何看待其中的任何東西?當然,外部結構應該是一個「地圖」或「矢量」,或者你可以索引到?) –

回答

0

這取決於您以後如何查詢信息。

我可以建議兩種選擇:

using namespace std; 
set< pair<string,string> > 

using namespace std; 
multimap<string,string> 

在第一種情況下set,你可以檢查,如果兩個節點連接,但你需要知道兩個節點(A和B )來運行查詢。在第二種情況multimap中,在給定節點A的情況下,您可以輕鬆獲得所有相鄰節點的迭代器。

您需要插入兩個對或使用某些規則,例如始終按字典順序添加邊。