在线等待,使用stl中的sort出了问题
// 这是比较的函数
bool operator < ( ProGameCarGuoJiMaJiang::SCardItem& param1, ProGameCarGuoJiMaJiang::SCardItem& param2);
// 这是比较函数实现
bool operator < (const ProGameCarGuoJiMaJiang::SCardItem& param1,const ProGameCarGuoJiMaJiang::SCardItem& param2)
{
if (param1.Type<param2.Type)
{
return true;
}
else if (param1.Type == param2.Type)
{
if (param1.CardIndex<param2.CardIndex)
{
return true;
}
return false;
}
return false;
}
/**
麻将牌
*/
typedef struct _SCardItem
{
ECardType Type; //牌类型
UINT8 CardIndex; //牌的序号
}SCardItem;
typedef std::vector<SCardItem> TVecCardItem;
// 一旦调用
TVecCardItem m_arrCards ;
std::sort(m_arrCards.begin(),m_arrCards.end());
将会出错:
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\algorithm(1719) : error C2676: 二进制“<” : “std::allocator<_Ty>::value_type”不定义该运算符或到预定义运算符可接收的类型的转换
我知道这个是由于没有操作符,我试着在struct里定义<操作符是可以的.
但是现在这个struct我无法去修改到了.
如何解决.谢谢.