- 论坛徽章:
- 0
|
代码定义部分如下,出现了记录能入到容器中,可用find函数查找时却说查找不到是什么原因,是因为比较函数出现问题,还是因为memcmp函数的问题?(换了注释部分的比较函数却可以查找),谢谢
Record: Type:SMS,Code:00000001,Add:10661700,Sub:-
typedef struct BUS_SCRIPT_KEY{
char BusType[8 + 1];
char BusCode[30 + 1];
char AddCode[30 + 1];
char SubBusCode[30 + 1];
};
struct ltcom
{
bool operator() (const BUS_SCRIPT_KEY &x1, const BUS_SCRIPT_KEY &x2) const
{
return memcmp(&x1,&x2,sizeof(BUS_SCRIPT_KEY)) < 0;
}
};
typedef std::map<BUS_SCRIPT_KEY,int,ltcom> BSMap;
typedef std::map<BUS_SCRIPT_KEY,int,ltcom>::iterator BSMapIt;
/*
bool operator < (const BUS_SCRIPT_KEY & x1, const BUS_SCRIPT_KEY & x2)
{
int iRet = 0;
if((iRet = strcmp(x1.BusType, x2.BusType)) == 0) {
if((iRet = strcmp(x1.BusCode, x2.BusCode)) == 0) {
if((iRet = strcmp(x1.AddCode, x2.AddCode)) == 0) {
if((iRet = strcmp(x1.SubBusCode, x2.SubBusCode)) == 0) {
}
}
}
}
return iRet < 0;
}
typedef std::map<BUS_SCRIPT_KEY,BUS_SCRIPT_VAL> BSMap;
typedef std::map<BUS_SCRIPT_KEY,BUS_SCRIPT_VAL>::iterator BSMapIt;
*/ |
|