【C++學習】對二維數(shù)組進行排序-創(chuàng)新互聯(lián)

1 問題描述

今天在學習?CUDA-NMS 算法時,遇到一個小問題,就是希望對一個二維數(shù)組進行排序,具體是這樣的:

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站設計、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的修武網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

需要對存儲目標框的二維數(shù)組進行排序,排序的方式是按照目標框的得分score從高往低排序,也就是結果數(shù)組的第二維的最后一個元素(dets[i][4])

(1)嘗試使用sort()直接進行排序,無法編譯通過

剛開始聽人說,可以用sort()直接進行排序,不過試了一下好像無法編譯通過,示例代碼:CPP_sort

#include  // for std::sort

const int N = 3;
int arr[N][N] = {{3, 1, 7},
        {4, 1, 9},
        {5, 3, 2},
    };

int main()
{// Initialize the array with some values
    for (int i = 0; i< N; ++i)
        for (int j = 0; j< N; ++j)
            arr[i][j] = i * N + j;

    // Sort the array using a custom comparator function
    std::sort(arr, arr + N, [](const int a[], const int b[]) {return a[N-1] >b[N-1];
    });

    // The array is now sorted in descending order by the last element of the second dimension
    return 0;
}

我個人感覺這里面比較本質的原因是:二維數(shù)組(的一行)無法像一維數(shù)組的元素一樣,在排序的時候進行swap交換,所以在編譯的時候會報錯;
我個人覺得比較看起來有關聯(lián)的一句報錯信息如下所示:
在這里插入圖片描述
報錯信息表示:error: invalid array assignment,很可能就是表示無法直接使用dets[i]的方式直接賦值數(shù)組的一行;

2 解決方法

代碼示例:CPP_qsort_2d_array

Note:
這份代碼示例沒有用lambda表達式來書寫,會使得代碼的篇幅較長,之后會計劃使用lambda表達式來進行改寫。

你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)頁標題:【C++學習】對二維數(shù)組進行排序-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://muchs.cn/article28/ddpojp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設、移動網(wǎng)站建設、網(wǎng)站策劃、網(wǎng)站維護、微信小程序、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設