这是我创建的用于在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