這是我創建的用於在C++中表示圖形的基於STL的數據結構。嵌套數據結構中的STL排序
typedef std::pair<int,int> ii;
typedef std::vector<ii> vii;
typedef std::vector<vii> graph;
在秩算法,我在史蒂芬·哈利姆的(競爭性的編程)的書閱讀
他使用邊緣的載體。
vector< pair<int, pair<int,int> > > edges;
那麼他排序爲按重量計(在一對第一INT)。我實現了這個算法,它的工作原理,但我想使用以前的數據結構,我不知道如何按重量排序邊緣,因爲它具有嵌套結構。
vector< vector< pair < int, int> > > graph
- 如何用代表重量的第二個參數對這個圖進行排序?
std::sort(mygraph.begin(), mygraph.end(), /* HERE I GOT A TROUBLE */)
謝謝
用適當的lambda函數替換'/ * HERE I GOT A TROUBLE * /'來比較權重。 –
http://en.cppreference.com/w/cpp/algorithm/sort有很多關於如何使用std的示例:: sort – UKMonkey
當有人向我拋出'vector>>'並告訴我'這是一個圖表「,我很難理解圖表如何由此構建。我覺得你需要對內部向量進行排序,但是我不知道在你的模型中哪個向量代表了什麼。謹慎解釋? –
grek40