泛型算法问题

zkdkeen 2009-11-03 09:07:38
首先定义了一个line的class:
class line {
int lp;
int rp; // lp < rp
};

其次有由n条线组成的线集vector<line> total_line;

我的问题是如何使用泛型算法首先对其进行排序,然后把重复元素删除。

请各位大侠指教 :)
...全文
38 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zkdkeen 2009-11-03
  • 打赏
  • 举报
回复
多谢各位 :)
zkdkeen 2009-11-03
  • 打赏
  • 举报
回复
3楼说的对:
class less_than1{
bool operator( line v1, line v2 )
{ return vl.lp < v2.lp? true:false; }
}

class less_than2{
bool operator( line v1, line v2 )
{ return (vl.lp == v2.lp && v1.rp < v2.rp )? true:false; }
}
zkdkeen 2009-11-03
  • 打赏
  • 举报
回复
哦,比较规则是:
1st, lp increasing.
2nd, rp increasing.

//eg. [1-2] [1-4] [2-1] [2-9] ...

刚又试了下,问题搞定了:

sort(lp);
stable_sort(keep lp sequence, rp);

iter = unique();
total_line.erase(iter);
  • 打赏
  • 举报
回复
class line增加一个operator<的成员函数就可以排序了
pengzhixi 2009-11-03
  • 打赏
  • 举报
回复
你的line都没给出比较规则如何使用泛型算法
wanghao111 2009-11-03
  • 打赏
  • 举报
回复
可以对类对象排序?

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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