2

2次元配列または並列配列の2つのデータセットを並べ替えようとしていますが、どちらの方法でも違いはありませんが、理解できないようです。2つの配列は次のとおりです。

/////way one///

int id[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int numDetected[10] = {40, 21, 2, 19, 45, 32,43, 90, 100, 8};

また

int 2dArray[2][10];

違いはありませんが、私には理解できないようです。

配列を新しい配列(2次元配列か平行配列かを問わず)に量順に並べたいと思いますnumDetected。したがって、最大numDetectedは要素0にあり、最小は最後にあります。ただし、その間、それに関連付けられたIDを。と同じ要素に保持したいと思いnumDetectedます。したがって、が最大の場合、新しい配列の最初の要素にnumDetected[2]なりたいnumDetected[2]と思います。id[2]

誰かが私を助けることができますか?

4

1 に答える 1

1
struct values
{
    int id;
    int detected;
} data[10] = ...;

// intentionally reversed to cause sort in descending order
bool operator<(const values& left, const values& right) { return left.detected > right.deteted; }

values *begin = data, *end = (&data)[1];
std::sort(begin, end);
于 2013-02-28T23:10:08.787 に答える