写代码中遇到一个问题,如下:
int l_size = m_less.size();
int g_size = m_greater.size();
if((m_less.size() - m_greater.size()) > 1){
// if((l_size - g_size) > 1){
int temp = m_less.top();
m_less.pop();
m_greater.push(temp);
}
代码中,注释掉的部分和上一句结果不一样,原因是size()的返回值是一个无符号数,两个无符号数相减若小于0则结果将是一个很大的正数。
可以用static_cast<int>化一下或者在判断前用int变量存储size()结果即可。