第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么 Go 和 C++ 中的排序函數(shù)不同?我無法在 Go 中獲得正確的結(jié)果

為什么 Go 和 C++ 中的排序函數(shù)不同?我無法在 Go 中獲得正確的結(jié)果

Go
UYOU 2022-11-23 16:20:46
我想nums在不破壞原始順序的情況下對命名的切片進(jìn)行排序。所以我inds用來記錄索引nums和排序inds:vector<int> nums = {1,3,2,1,1,1};vector<int> inds = {0,1,2,3,4,5};sort(inds.begin(), inds.end(),     [nums](int i, int j) -> bool{     return nums[i] > nums[j]; });for(int i : inds) {    cout << i;}這inds是120345排序后的。在 Go 中,我測試:nums := []int{1,3,2,1,1,1}inds := []int{0,1,2,3,4,5}sort.Slice(inds, func(i, j int) bool {    return nums[i] > nums[j]})fmt.Println(inds)而 The indsis [1 0 2 3 4 5]after sort,這和C++的結(jié)果不一樣,和我預(yù)想的不一樣。為什么 Go 排序inds不好?
查看完整描述

1 回答

?
波斯汪

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊

匿名函數(shù)參數(shù)i和j是 中的索引inds,但程序使用參數(shù)作為 中的索引nums。


inds通過使用將索引值轉(zhuǎn)換為來修復(fù)nums:


sort.Slice(inds, func(i, j int) bool {

    return nums[inds[i]] > nums[inds[j]]

})


查看完整回答
反對 回復(fù) 2022-11-23
  • 1 回答
  • 0 關(guān)注
  • 120 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)