首页 文章

对具有私有变量的类向量使用sort

提问于
浏览
0

我上课了

class Studentas
{
 public:
 static const int CPaz=10;
 private:
 string pavarde, vardas, grupe;
 double paz[CPaz],   // paþymiø masyvas
 np;          // paþymiø kiekis
 double vidurkis;
 double STsk;
 public:
 Studentas(): pavarde(""), vardas(""), grupe(""), np(0), STsk(1),vidurkis(0)
 { }
 double imtinp(){return np;}
 double imtipaz(int i){return paz[i];}

 void Deti(string pav, string vard, string grup, int np, int pz[],double vid);
 void grupeDETI(string grp,double vidurk){grupe=grp;vidurkis+=vidurk;}

 double iv(){return vidurkis;} <---------------------------------------THE ONES IM USING
 void isvestiVID(){vidurkis/=STsk;}
 void pridetiSK(){STsk++;}

 string ig(){return grupe;} <---------------------------------------THE ONES IM USING
 string Spausdinti(int i);
 string SpausdintiGrupes();
};

布尔我正在使用布尔

myfunction(Studentas const &d1,Studentas const &d2){return (d1.iv() > d2.iv() || d1.iv()==d2.iv()     && d1.ig() < d2.ig());} 

vector<Studentas> grupe;(with whatever length)

sort(grupe.begin(), grupe.end(),myfunction);

我得到一个错误,“无法将'指针'从'const Studentas'转换为'Studentas&'”

编辑:我使用void函数来获取我的变量 .

EDIT2:感谢所有的帮助,我想我只会把这个问题搞砸了 . 没有时间浪费,再次感谢你的帮助 .

编辑3:对我的运算符叠加进行了愚弄,下面的方法有效 .

1 回答

  • 3

    将您的方法标记为 const

    double iv() const {return vidurkis;}
    

    这样你就可以在 const 对象上调用它们,这就是 d1d2 .

    逻辑上不需要修改对象的所有方法都应标记为 const .

相关问题