次のように宣言されたベクトルがあります。
vector<vector<vector<int> > > myVector (148995,vector<vector<int> >(7,vector <int>(6,0)));
std::sort を使用してソートできるようにしたいと思います。
Myvector[x][y][z] の y = 5 の値で y のすべての値を並べ替えたい
一度に 1 つの z をソートできるようにしたい (z 値は 0 から 5 まで可能)、独立した 2d ベクトルとしてソートしようとし、Myvector[x][y] しか持っていませんが、常にコンパイルされますそうしている間にエラー。
別のスタックオーバーフローの質問でこのコードを見つけましたが、これは 2 次元ベクトルで機能しますが、プログラミング スキルが限られているため、3 次元ベクトルに変換することはできません。
std::sort(myVector.begin(), myVector.end(), [](const std::vector< int >& a, const std::vector< int >& b){ return a[1] > b[1]; } );
ありがとう、カヴェン
編集
myVector[x][y][z]
Myvector[x] = {0,1,2,3,...,200 000}
myvector[0][y][0] = {44,30,21,15,1,600,25}
myvector[1][y][0] = [25,24,10,7,1,700,30}
myvector[0][y][2] = {34,20,11,6,1,400,25}
myvector[1][y][2] = [33,24,10,7,1,300,40}
すべての x の myvector[x][y][z] を y = 5 の値でソートし、すべての 'y' 値を z = 0 でソートするとします (z は 0 から 5 まで変化する可能性があります)。
私が好きな並べ替えを使用し、それを z = 0 で使用すると、
myvector[1][y][0] = {44,30,21,15,1,600,25}
myvector[0][y][0] = [25,24,10,7,1,700,30}
myvector[0][y][2] = {34,20,11,6,1,400,25}
myvector[1][y][2] = [33,24,10,7,1,300,40}