stl算法中的排序算法的有关问题

stl算法中的排序算法的问题
bool lessFn(const Data& d1,const Data& d2)
{
if(d1.f_n==d2.f_n)
{
if(d1.w_n==d1.w_n)
{
return d1.g_n<d2.g_n;
}
else
return d1.w_n<d2.w_n;
}
else
return d1.f_n<d2.f_n;
}

这是我的操作函数
然后排序
sort(OpenDeque.begin(),OpenDeque.end(),lessFn);  
我的意思就是想先判断如果f_n一样,则再按照w_n来排序,若w_n一样则再按照g_n排序
不知道为什么每次排过之后OpenDeque中的顺序总是不对,还只是先按照f_n排序然后就按照进入队列的顺序了,我就想问一下这样写判断操作了lessFn有没有问题。

------解决方案--------------------
re
不知道,感觉你的函数没有问题。