typedef struct
{
std::string name;
int id;
int sn;
float kval;
float bias;
PointValue val;
BOOL valChangeFlag; //判断点的值有没有变化
int param; //用在珠海101规约
float hiOutPut; //用在珠海101规约
float lowOutPut; //用在珠海101规约
} DasPoint;
std::vector<DasPoint*> pointList;
我想根据name进行排序,vector里有自带的排序吗?
如果没有,提供点思路啊,谢谢,帮帮忙
{
std::string name;
int id;
int sn;
float kval;
float bias;
PointValue val;
BOOL valChangeFlag; //判断点的值有没有变化
int param; //用在珠海101规约
float hiOutPut; //用在珠海101规约
float lowOutPut; //用在珠海101规约
} DasPoint;
std::vector<DasPoint*> pointList;
我想根据name进行排序,vector里有自带的排序吗?
如果没有,提供点思路啊,谢谢,帮帮忙
bool MySortFunc(const DasPoint* pItem1, const DasPoint* pItem2)
{
assert( pItem1 && pItem2 );
return ( pItem1->name.compare( pItem2->name ) < 0 );
}
typedef struct
{
std::string name;
int id;
int sn;
float kval;
float bias;
PointValue val;
BOOL valChangeFlag; //判断点的值有没有变化
int param; //用在珠海101规约
float hiOutPut; //用在珠海101规约
float lowOutPut; //用在珠海101规约
bool operator< (const struct DasPoint& dp)
{
return id < dp.id; // 升序
}
} DasPoint;
std::vector <DasPoint*> pointList; sort(pointList.begin(), pointList.end());
二:sort(v.begin() , v.end());
#include <algorithm>
#include <functional>
#include <vector>
using namespace std;class DasPoint
{
public:
std::string name;
int id;
int sn;
float kval;
float bias;
PointValue val;
int param; //用在珠海101规约
float hiOutPut; //用在珠海101规约
float lowOutPut; //用在珠海101规约
BOOL valChangeFlag; //判断点的值有没有变化 bool operator < (const DasPoint &m)const
{
return name < m.name;
}
};//自定义排序条件
bool less_second(const DasPoint & m1, const DasPoint & m2)
{
return m1.second < m2.second;
}int main()
{
vector<DasPoint> vect;
sort(vect.begin(), vect.end());//使用默认 < 来比较
sort(vect.begin(), vect.end(), less_second);//使用自定义排序条件排序
}