SortWizard(排序精靈)——我的排序類

















































































































































































































































































































































































































如果您認為還可以改進的話 請留言告訴我:-)
posted on 2009-05-07 18:54 abilitytao 閱讀(1879) 評論(14) 編輯 收藏 引用
枯葉北風寒,忽然年以殘,念往昔,語默心酸。二十光陰無一物,韶光賤,寐難安; 不畏形影單,道途阻且慢,哪曲折,如渡飛湍。斬浪劈波酬壯志,同把酒,共言歡! -如夢令
posted on 2009-05-07 18:54 abilitytao 閱讀(1879) 評論(14) 編輯 收藏 引用
博主可否做成成員函數是模板函數的非模板類,這樣可以用一個對象來處理所有類型的排序 回復 更多評論
@adon
不知道您有什么高見呢 我現在的方法是 重載運算符 不過這個對基本數據類型不管用 回復 更多評論
@zhaoyg
您的意思是不是讓我拿掉私有成員變量?把它作為類里面函數的參數? 回復 更多評論
@abilitytao
恩,是這樣的.
不知你意下如何 回復 更多評論
不過感覺像我這樣一弄,好像也就沒必要造這個類了,直接用庫函數就是了。 回復 更多評論
@abilitytao
可以使用policy based做比較
template<typename element_t>
struct less_than {
static bool compare(const element_t lhs, const element_t rhs) {
return lhs<rhs;
}
};
template<typename element_t, typename cmp_policy = less_than<element_t> >
struct sort_wirzad {
void easy_sort() {
...
//做比較
if ( cmp_policy::compare(e1,e2) ) { /* do sth */ }
}
};
用戶可以自定義自己的 compare_policy
比如定義一個 greater_than 可以這樣傳遞給sort_wizard:
sort_wizard<int,greater_than> instance; 回復 更多評論
@Charlie
這個就是常用的cmp函數吧 呵呵 我還不是很理解呢 回復 更多評論
哦~ 我忘記return total了~ 不好意思~ 不傷大雅就OK~ 回復 更多評論
@Chuck
多謝呵 講解的很詳細:-)
PS:話說BIG_INT我也有一個 不過要是有高精浮點類就好了 呵呵 回復 更多評論
qsort
實現的太過簡單。。。。。。沒啥實際價值。 回復 更多評論
只有注冊用戶登錄后才能發表評論。 | ||
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
![]() |
||
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|