2

C++ を使用して、最初の列に基づいて以下のトリプルをソートする方法を知りたいですか? std::map を使用できますか?

0 0 1
1 2 0
2 0 3
0 1 4

望む結果は

0 0 1
0 1 4
1 2 0
2 0 3
4

2 に答える 2

7

たとえば、 std::tuple のベクトルに対して std::sort を使用できます。デフォルトの比較は辞書式であるため、最初の列が最も重要です。

于 2012-08-05T18:03:27.120 に答える
5

あなたがソートしていると仮定するとstd::vector<std::vector<int>>

C++11:

std::sort(begin(vec), end(vec), [](const std::vector<int>& a,
                                   const std::vector<int>& b){
  return a[0] < b[0]; // sorting on the first column only
});

字句順序が必要であると仮定します:

std::sort(begin(vec), end(vec));
于 2012-08-05T18:04:28.493 に答える