我有一個類CL1:C++排序類類矢量內
class c1
{
long double * coords;
...
}
我也有一個第二類CL2:
class cl2
{
vector<cl1*> cl1_vec;
unsigned int d;
...
}
我想排序cl1_vec,從CL2,基於coords [d],使用向量的排序函數。 所以我可以有類似
sort(cl2_inst->cl1_vec.begin(),cl2_inst->cl1_vec.end(), ???);
我試着像approches
sort the 'std::vector' containing classes
C++ std::sort with predicate function in Class
,但我不能讓我的方式來解決這一點。
感謝您的任何幫助,這種方式。
代碼中,我已經試過:
class cl1 {
public:
long double* coords;
cl1(long double *, unsigned int);
cl1();
cl1(const cl1& orig);
virtual ~cl1();
};
class cl2 {
public:
unsigned int d;
vector<cl1*> cl1_vec;
//the srting functions
static bool compareMyDataPredicate(cl1* lhs, cl1* rhs)
{
return (lhs->coords[d] < rhs->coords[d]);
};
// declare the functor nested within MyData.
struct compareMyDataFunctor : public binary_function<my_point*, my_point*, bool>
{
bool operator()(cl1* lhs, cl1* rhs)
{
return (lhs->coords[d] < rhs->coords[d]);
}
};
...
...
}
然後在主
std::sort(cl2_inst->cl1_vec.begin(),cl2_inst->cl1_vec.end(),cl2::compareMyDataPredicate());
請發表您試圖代碼,並介紹沒有關於它的工作。 –
我將編輯問題並將代碼試過我試過 – 0gap
你想排序什麼?長雙*座標?什麼類型是cl1?錯字? – Martin