今天在學(xué)習(xí)?CUDA-NMS 算法時(shí),遇到一個(gè)小問(wèn)題,就是希望對(duì)一個(gè)二維數(shù)組進(jìn)行排序,具體是這樣的:
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的修武網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!(1)嘗試使用需要對(duì)存儲(chǔ)目標(biāo)框的二維數(shù)組進(jìn)行排序,排序的方式是按照目標(biāo)框的得分score從高往低排序,也就是結(jié)果數(shù)組的第二維的最后一個(gè)元素(dets[i][4])
sort()
直接進(jìn)行排序,無(wú)法編譯通過(guò)剛開(kāi)始聽(tīng)人說(shuō),可以用sort()
直接進(jìn)行排序,不過(guò)試了一下好像無(wú)法編譯通過(guò),示例代碼: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;
}
我個(gè)人感覺(jué)這里面比較本質(zhì)的原因是:二維數(shù)組(的一行)無(wú)法像一維數(shù)組的元素一樣,在排序的時(shí)候進(jìn)行swap交換,所以在編譯的時(shí)候會(huì)報(bào)錯(cuò);
我個(gè)人覺(jué)得比較看起來(lái)有關(guān)聯(lián)的一句報(bào)錯(cuò)信息如下所示:
報(bào)錯(cuò)信息表示:error: invalid array assignment,很可能就是表示無(wú)法直接使用dets[i]的方式直接賦值數(shù)組的一行;
代碼示例:CPP_qsort_2d_array
Note:
這份代碼示例沒(méi)有用lambda表達(dá)式來(lái)書寫,會(huì)使得代碼的篇幅較長(zhǎng),之后會(huì)計(jì)劃使用lambda表達(dá)式來(lái)進(jìn)行改寫。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧