C のサブ配列の最初の要素による多次元配列のソート
各サブ配列の最初の要素で多次元配列をソートするには、次のようにします。配列を直接操作するのではなく、間接的な並べ替えアプローチを採用することをお勧めします。これには、元の配列を指すインデックスの配列の作成と、必要な条件に基づいてインデックスの並べ替えが含まれます。
実装
C での実装例を次に示します。 :
#include <algorithm> int main() { // Sample array of arrays int timeTable[3][2] = {{4, 204}, {10, 39}, {1, 500}}; // Create an array of indices to use for sorting int indices[3] = {0, 1, 2}; // Sort indices based on the first element of each subarray in timeTable std::sort(indices, indices + 3, [](int i1, int i2) { return timeTable[i1][0] < timeTable[i2][0]; }); // Access the sorted subarrays using the sorted index array for (int i = 0; i < 3; ++i) { std::cout << "Subarray at index " << indices[i] << ": [" << timeTable[indices[i]][0] << ", " << timeTable[indices[i]][1] << "]" << std::endl; } }
例
サンプル配列 timeTable の場合、出力は次のようになります:
Subarray at index 0: [1, 500] Subarray at index 1: [4, 204] Subarray at index 2: [10, 39]
間接ソートの利点
この間接的な並べ替え方法には、直接的な並べ替え方法に比べていくつかの利点があります。並べ替え:
以上がCで多次元配列を各部分配列の最初の要素でソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。