返回信息流写了个程序,想实现如下功能。
1、有一个vector<sth> v1
2、用stable_sort()对v1里面的内容排序。有一个Function Obj Less(sth1, sth2)用来判断sth1,sth2大小。
3、查找v1里符合一定要求的元素,保存到一个vector<vector<sth>::iterator> v2里,对v2按照iterator指向元素的大小排序,然后留待后用。
现在的问题是,Less()只能接受sth参数,而不能接受指向std的iterator参数。但是再写个吧又嫌麻烦。不知道各位有没有什么好点的方法介绍介绍。
谢谢拉!
这是一条镜像帖。来源:北邮人论坛 / soft-design / #24837同步于 2008/4/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
[求助]问个关于设计模式的问题
FadeToBlack
2008/4/6镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
不是说使用了设计模式,就能把原来没有的功能给实现出来了。
而是说使用了设计模式,更好地把自己想写的东西组织到一起,方便以后的维护。
简单地说,给自己的房间打扫卫生,整理整理,不会让房间里多出个沙发来。
是我没说清楚。我想知道有什么好一点的思路可以设计的好看一些。不想为了单纯一个buffer的排序在写一个函数或是在定义一个func obj.
【 在 ericyosho 的大作中提到: 】
: 不是说使用了设计模式,就能把原来没有的功能给实现出来了。
: 而是说使用了设计模式,更好地把自己想写的东西组织到一起,方便以后的维护。
: 简单地说,给自己的房间打扫卫生,整理整理,不会让房间里多出个沙发来。
模式的作用是把相同的东西放在一起,不同的东西做活了。
你这两个区别是在参数上,所以用模式也是把sth和iter的对象做个抽象。
比如说你可以创建一个类叫做Lessarg,然后从sth和iter分别做成它的子类,分别实现Less函数。
你的代码调用的时候只是去调用Lessarg类型的参数,然后new的时候是sth的话,就做Less(sth), new的时候是iter的话,就做Less(iter)
还是觉得小题大作了。其实就是个普通的函数名相同,参数不同的重载么。
我再想一想。THX!
【 在 ericyosho 的大作中提到: 】
: 模式的作用是把相同的东西放在一起,不同的东西做活了。
: 你这两个区别是在参数上,所以用模式也是把sth和iter的对象做个抽象。
: 比如说你可以创建一个类叫做Lessarg,然后从sth和iter分别做成它的子类,分别实现Less函数。
: ...................