私は C++ に非常に慣れていないので、私の質問はばかげているように聞こえるかもしれませんが、ベクトルを使用してソート関数に取り組んでいます。
コードはコンパイルして実行できますが、並べ替えはできません。その理由を知ることができますか?
ミッションプラン.cpp
bool MissionPlan::sortByCiv(const PointTwoD &t1, const PointTwoD &t2)
{
return t1.locationdata.getCivIndex() > t2.locationdata.getCivIndex();
}
void MissionPlan::topfives()
{
topfive.assign( point1.begin(), point1.end() );
sort(topfive.begin(), topfive.end(), sortByCiv);
for(int i=0; i < 5; i++)
{
topfive.at(i).displayPointdata();
}
}
pointtwod.h
class PointTwoD
{
private:
int xcord,ycord;
float civIndex;
//LocationData locationdata;
public:
PointTwoD();
PointTwoD(int, int, float);
string toString();
void setPointDetail(int x, int y, float civ);
void displayPointdata();
void storedata(int, int, float);
//set/mutator function
void setxcord(int);
void setycord(int);
//get/accessor function
int getxcord();
int getycord();
float getcivIndex();
LocationData locationdata;
};
Locationdata.h
class LocationData
{
private:
string sunType;
int noOfEarthLikePlanets, noOfEarthLikeMoons;
float aveParticulateDensity, avePlasmaDensity;
static float civIndex;
public:
LocationData(); //default constructor
LocationData(string, int, int, float, float); // no default constructor
void setLocationData(string, int, int, float, float);
void displaydata();
string toString();
//'set' mustator function
void setsunType(string);
void setnoOfEarthLikePlanets(int);
void setnoOfEarthLikeMoons(int);
void setaveParticulateDensity(float);
void setavePlasmaDensity(float);
//'get' accessor function
string getsunType();
int getnoOfEarthLikePlanets();
int getnoOfEarthLikeMoons();
float getaveParticulateDensity();
float getavePlasmaDensity();
static float getCivIndex();
static float computeCivIndex(string st, int earth, int moons, float particle, float plasma);
};
別の質問があります.. bool myfunction (int i,int j) { return (i
私が期待している結果
X: 4 Y: 9 CIV: 10
X: 1 Y: 2 CIV: 5
X: 5 Y: 4 CIV: 4
X: 6 Y: 1 CIV: 3
X: 10 Y: 6 CIV: 1
私のプログラムから受け取った結果は、入力方法とまったく同じです。
X: 10 Y: 6 CIV: 1
X: 5 Y: 4 CIV: 4
X: 4 Y: 9 CIV: 10
X: 1 Y: 2 CIV: 5
X: 6 Y: 1 CIV: 3
X: 5 Y: 9 CIV: 8