使用泛型算法sort,自定义函数对象,请看我的用法对不对?

freezingfire 2002-06-20 09:55:14
代码如下:

class CDIRecDataInfoComp
{
public:
bool operator() (const DATA_INFO* dataInfo1,
const DATA_INFO* dataInfo2) const
{
return (dataInfo1->m_nCnt < dataInfo2->m_nCnt);
}
};

void main(void)
{
...
std::vector<DATA_INFO*> dataInfo;
... // 插入一些元素

// 希望根据DATA_INFL::m_nCnt,升序排列
sort(dataInfos.begin(), dataInfos.end(), CDIRecDataInfoComp());
}

请指教,谢谢!
...全文
75 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
freezingfire 2002-06-20
  • 打赏
  • 举报
回复
多谢各位,特别是anrxhzh(百宝箱)。
anrxhzh 2002-06-20
  • 打赏
  • 举报
回复
代码没有错误。不过应该没有必要存放指针,应该是std::vector<DATA_INFO> dataInfo;
请参考http://www.xraylith.wisc.edu/~khan/software/stl/STL.newbie.html#pointers
hz129 2002-06-20
  • 打赏
  • 举报
回复
正确。
GarlandGreene 2002-06-20
  • 打赏
  • 举报
回复
不好意思,我对STL的内部机制不是很熟,也不太清楚函数对象是否可以这样用,不过如果你写的程序不能通过编译或者结果不正确,你可以试试在CDIRecDataInfoComp类中重 < 运算符,然后用dataInfo.sort()来进行排序,我一般都是这样排序的。
hz129 2002-06-20
  • 打赏
  • 举报
回复
试一下不就行了?

这段代码是正确的。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧