我需要排序程序std::vector<float*> _data
的幫助。 排序條件可以在_data的索引i1,i2,i3 ...上以升序方式選擇。 i1是 float *i1_data = _data[i1];
qsort std :: vector <float*> _data
我該如何實現它?
我需要排序程序std::vector<float*> _data
的幫助。 排序條件可以在_data的索引i1,i2,i3 ...上以升序方式選擇。 i1是 float *i1_data = _data[i1];
qsort std :: vector <float*> _data
我該如何實現它?
你可以寫一個比較仿函數
struct float_cmp{
bool operator()(float *f1, float *f2){
return (*f1) < (*f2);
}
}
std::sort(myvec.begin(), myvec.end(), float_cmp);
這是行不通的,當我對i1_data進行排序時,其他i2_data,i3_data和iN_data必須是根據i1_data中的索引進行交換。 –
我不太明白你想要做什麼。你能否詳細說明你正在努力完成什麼。 – GWW
這聽起來像你要麼需要一個升壓多指標,或struct
已在它所有的數據成員的單vector
,與單一的而不是多個向量數據類型每個。
我不知道你的問題是什麼。 –
這裏試圖解碼你的問題。你有一系列的N浮點數組,你可以調用'i1_data'到'iN_data'並使用'float *'指針來引用。我們假設它們的長度都是相同的,所以這實際上是一個矩陣。出於某種原因,您選擇在'i1_data'中存儲整數索引,並且您想按照'i1_data'中給出的順序對所有其他數組進行排序。我關門了嗎? (順便說一下,如果你更仔細地指定了這個問題開始,以避免這種猜測會是有幫助的。) – Tom