64,683
社区成员
发帖
与我相关
我的任务
分享
inline int cmp( std::pair<Palette, int>& x, std::pair<Palette, int>& y)
{
return x.second > y.second;
}
[Quote=引用 37 楼 luciferisnotsatan 的回复:]typedef struct tagPalette {
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
bool operator <(tagPalette const& _A) const
{//这个函数指定排序策略
if(rgbBlue<_A.rgbBlue && rgbGreen <=_A.rgbGreen && rgbRed <= _A.rgbRed) return true;
if( rgbGreen < _A.rgbGreen && rgbBlue<=_A.rgbBlue && rgbRed <= _A.rgbRed) return true;
if (rgbRed < _A.rgbRed && rgbBlue<=_A.rgbBlue && rgbGreen <=_A.rgbGreen ) return true;
return false;
}
} Palette;
typedef std::map<Palette,int> PaletteCount
std::vector<std::pair<Palette,int> > tVector;
for (std::map<Palette, int>::iterator curr = m_palcount.begin(); curr != m_palcount.end(); curr++)
{
tVector.push_back(std::make_pair(curr->first, curr->second));
}
std::sort(tVector.begin(), tVector.end(), &Render::RenderFactoryBase::cmp);
[Quote=引用 30 楼 pengzhixi 的回复:]