C の部分配列の最初の項目による配列の並べ替え
元の配列は 2 つの要素を持つ部分配列で構成されます: 例: [[4, 204] 、[10, 39]、[1, 500]]。目標は、各部分配列の最初の要素に基づいてこれらの配列を並べ替えることです: [[1, 500], [4, 204], [10, 39]]。
並べ替え手法
興味深いことに、元の配列自体を操作する必要はありません。代わりに、元の配列内の部分配列を指すインデックスの配列をソートし、ソートされたインデックスを使用してソートされた要素にアクセスする方が良い方法です。
この手法の利点
元の配列の代わりにインデックスをソートすると、次の場合に有利です。
実装例
次の例を考えてみましょうコード:
#include <algorithm> #include <iostream> int main() { int index[3] = {0, 1, 2}; int timeTable[3][2] = {{4, 204}, {10, 39}, {1, 500}}; std::sort(index, index + 3, [&](int n1, int n2) { return timeTable[n1][0] < timeTable[n2][0]; }); for (int i = 0; i < 3; ++i) { std::cout << "The index is " << index[i] << ". The data at this index is [" << timeTable[index[i]][0] << " " << timeTable[index[i]][1] << "]\n"; } }
この例:
注: このソート手法は、サブ配列の配列だけでなく、1 つの配列のデータに基づいて複数の配列を並行してソートする必要があるシナリオにも適用できます。配列の
以上がC で部分配列の配列を最初の要素でソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。