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
たとえば、 std::tuple のベクトルに対して std::sort を使用できます。デフォルトの比較は辞書式であるため、最初の列が最も重要です。
あなたがソートしていると仮定すると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));