これは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
- このグラフを重みを表すペアで2番目のパラメータでソートするにはどうすればよいですか?
std::sort(mygraph.begin(), mygraph.end(), /* HERE I GOT A TROUBLE */)
あなただけのグラフあなたがstd::sort()
を使用して望むように並べ替えることはできませんあなた
適切なラムダ関数を使って '/ * HERE I GOT A TOTTURE * /'を置き換えて、ウェイトを比較してください。 –
http://en.cppreference.com/w/cpp/algorithm/sortには、std :: sortの使い方の例がたくさんあります。 – UKMonkey
誰かが 'ベクトル<ベクトル<ペア> 'を'スローして私に伝えたら、それはグラフです "、私はグラフがこれからどのように構築されるのか理解するのに苦労しています。私は内側のベクトルをソートする必要があるように感じますが、再びあなたのモデルでどのベクトルが表現されているかわかりません。説明するケア? –
grek40