c++中template對字符串的處理方法
更新時間:2014年07月23日 16:29:09 投稿:shichen2014
這篇文章主要介紹了c++中template對字符串的處理方法,需要的朋友可以參考下
C++中的Template作用是把僅類型不同但功能相似的函數(shù)合并在一起,但是有時候template中的函數(shù)并不能滿足所有的類型調用。如下所示:
template <class Kty> inline int hash_wrap(const Kty& k) { return (int)k; }
所有的數(shù)字類型使用該模板都沒有問題,但是string類型卻不行,因為不支持有string到int的類型轉換(編譯過程中)。這樣我們就需要在該模板外添加一個對string類型的支持,代碼如下:
template <> inline int hash_wrap<string>(conststring & k) { return k.size(); }
其中template <>表明該函數(shù)是模板類型的延伸,<string>表明對原模板的string類型進行改寫。
例如下面兩個例子所示:
例1:
template <class Kty> inline unsigned int get_size(const Kty&k) { return sizeof(Kty); } template <> inline unsigned int get_size(conststring& k) { return k.length() + 1; }
例2:
template <class Kty> inline bool cmp_key(const Kty& k, constchar* dest) { return k == *(Kty* )dest;; } template <> inline bool cmp_key(const string& k,const char* dest) { return strcmp(k.c_str(), dest) == 0; }
相關文章
C語言實現(xiàn)食堂就餐管理系統(tǒng)(帶鏈表)
這篇文章主要為大家詳細介紹了C語言實現(xiàn)食堂就餐管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11C語言實現(xiàn)數(shù)組的循環(huán)左移,右移,翻轉的示例
今天小編就為大家分享一篇C語言實現(xiàn)數(shù)組的循環(huán)左移,右移,翻轉的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07