c 排序後如何獲取索引排列

2021-10-20 08:35:33 字數 891 閱讀 8240

給定乙個陣列arr = ,我們可以通過sort(arr,arr sizeof(arr)/ sizeof(arr [0]))進行排序。

所以現在陣列arr = ,排序陣列的置換索引為。

換句話說,原始陣列中的arr [2]現在是位置0中排序陣列中的最小元素

但是如果想返回排序索引表就需要額外加點東西了,

a是需要排序列表,b是原始索引表,實質是根據a的value去對b進行重排列。

這個[&a](int i, int j)->bool);是乙個lamda表示式,其中重要的是需要捕獲一下a才行,否則不認a。

vector<

int> data =

;

vector<

int>

index

(data.

size()

,0);

for(

int i =

0; i != index.

size()

; i++

)sort

(index.

begin()

, index.

end(),

[&](

const

int& a,

const

int& b));

for(

int i =

0; i != index.

size()

; i++

)

列印2,0,3,1

可以使用索引以排序順序檢索資料:

for

(int i =

0; i != index.

size()

; i++

)

如何獲取當前索引值

在用gridview控制項時,我們經常會碰到獲取當前行的索引,通過索引進行許多操作。例如,可以獲得當前行某乙個控制項元素 設定某一元素的值等等。下面結合例項介紹幾種獲得gridview當前行索引值的方法。例項 目的 獲取gridview中rowcommand的當前索引行。前台頁面 在gridview...

Mysql 獲取成績排序後的名次

其實就是輸出mysql的排序後的行號 rt 獲取單個使用者的成績在所有使用者成績中的排名 可以分兩步 1 查出所有使用者和他們的成績排名 select id,maxscore,rownum rownum 1 as rowno from t user,select rownum 0 b order b...

設定約束後 如何獲取正確的frame

1 任何原因引起view的尺寸被改變 2 呼叫viewcontroller的 viewwilllayoutsubviews 方法 3 未啟用autolayout情況,呼叫 layoutsubviews 4 啟用autolayout情況,呼叫viewcontroller的 updateviewcons...