问题代码片段:
bool GeneralItemSort(GeneralRankMgr::GeneralItem* left, GeneralRankMgr::GeneralItem* right)
{
return left->m_level >= right->m_level;
}
void GeneralRankMgr::Sort()
{
sort(m_rankList.begin(), m_rankList.end(), GeneralItemSort);
for (int i = 0; i < m_rankList.size(); i++)
{
m_rankList[i]->m_order = i + 1;
}
}
原因是
left->m_level >= right->m_level不能用 >= 要用 >,因为sort是严格弱序排列。但问题是运行的时候系统如何能检测到 我代码里面写的是> 还是 >=