2011-06-20 258 views
-1

我需要排序程序std::vector<float*> _data的幫助。 排序條件可以在_data的索引i1,i2,i3 ...上以升序方式選擇。 i1是 float *i1_data = _data[i1];qsort std :: vector <float*> _data

我該如何實現它?

+0

我不知道你的問題是什麼。 –

+1

這裏試圖解碼你的問題。你有一系列的N浮點數組,你可以調用'i1_data'到'iN_data'並使用'float *'指針來引用。我們假設它們的長度都是相同的,所以這實際上是一個矩陣。出於某種原因,您選擇在'i1_data'中存儲整數索引,並且您想按照'i1_data'中給出的順序對所有其他數組進行排序。我關門了嗎? (順便說一下,如果你更仔細地指定了這個問題開始,以避免這種猜測會是有幫助的。) – Tom

回答

2

你可以寫一個比較仿函數

struct float_cmp{ 
    bool operator()(float *f1, float *f2){ 
     return (*f1) < (*f2); 
    } 
} 

std::sort(myvec.begin(), myvec.end(), float_cmp); 
+0

這是行不通的,當我對i1_data進行排序時,其他i2_data,i3_data和iN_data必須是根據i1_data中的索引進行交換。 –

+1

我不太明白你想要做什麼。你能否詳細說明你正在努力完成什麼。 – GWW

0

這聽起來像你要麼需要一個升壓多指標,或struct已在它所有的數據成員的單vector,與單一的而不是多個向量數據類型每個。

相關問題