私は例えば、ライブラリからstd::sort
を使用してalgorithm
STDを使用して、特定の基準に2Dベクトルをソート::ソート
を所望の基準を使用して2Dベクトル(行列)をソートに関する1つのコーディングの問題が発生したのは、私が2Dを持っているとしましょうベクトル
1,8,3
1,9,1
1,4,2
^
と私はだから私は行列を持ちたいソートした後(例えば、成長のための基準)第三列 ことによってそれをソートしたい:
1,9,1
1,4,2
1,8,3
^
std::sort
にソート基準を指定するには、第3の関数をstd::sort
に送信する必要があることを知っています。それが1D vector
だった場合、それは問題ではないでしょう。私は2つのパラメータを持つstd::sort
の中にラムダを作り、それらを比較してtrue/falseを返します。
これで、私が直面している問題を知ることができます。マトリックス内の特定の要素にアクセスするにはどうすればいいですか?第3の列要素をstd::sort
と比較してください。
#include <iostream>
#include <vector>
#include <algorithm>
void printMatrix(std::vector<std::vector<int>> m) {
for(int i = 0; i < m.size(); i++) {
for(int j = 0; j < m[i].size(); j++) {
std::cout << m[i][j] << " ";
}
std::cout << std::endl;
}
}
int main() {
std::vector<std::vector<int>> m{
{1,8,3},
{1,9,1},
{1,4,2}
};
std::sort(m.begin(), m.end(), [](int a, int b) { // error
// ???
});
printMatrix(m);
return 0;
}
私はこの問題を解決するために他の外部ライブラリを使用しません。
ご協力いただきありがとうございます。 :)
ありがとうございました!解決策は私が思ったよりも簡単です! :) – galaxyworks
@ galaxyworks。どういたしまして。どんなときも!私はあなたの問題を解決することがうれしいです。 :-) – WhiZTiM