c++中template對字符串的處理方法
C++中的Template作用是把僅類型不同但功能相似的函數(shù)合并在一起,但是有時(shí)候template中的函數(shù)并不能滿足所有的類型調(diào)用。如下所示:
template <class Kty> inline int hash_wrap(const Kty& k) { return (int)k; }
所有的數(shù)字類型使用該模板都沒有問題,但是string類型卻不行,因?yàn)椴恢С钟衧tring到int的類型轉(zhuǎn)換(編譯過程中)。這樣我們就需要在該模板外添加一個(gè)對string類型的支持,代碼如下:
template <> inline int hash_wrap<string>(conststring & k) { return k.size(); }
其中template <>表明該函數(shù)是模板類型的延伸,<string>表明對原模板的string類型進(jìn)行改寫。
例如下面兩個(gè)例子所示:
例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#中使用split分割字符串的幾種方法小結(jié)
- c#中分割字符串的幾種方法
- C++實(shí)現(xiàn)將一個(gè)字符串中的字符替換成另一個(gè)字符串的方法
- C++實(shí)現(xiàn)判斷字符串是否回文實(shí)例解析
- c++面試題字符串拷貝函數(shù)示例
- C++中訪問字符串的三種方法總結(jié)
- C字符串與C++中string的區(qū)別詳解
- C++ 字符串的反轉(zhuǎn)五種方法實(shí)例
- C字符串與C++字符串的深入理解
- C++實(shí)現(xiàn)strcmp字符串比較的深入探討
- C++中漢字字符串的截取
- c++ 連接兩個(gè)字符串實(shí)現(xiàn)代碼 實(shí)現(xiàn)類似strcat功能
- C++常用字符串分割方法實(shí)例匯總
相關(guān)文章
C語言實(shí)現(xiàn)食堂就餐管理系統(tǒng)(帶鏈表)
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)食堂就餐管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11C語言實(shí)現(xiàn)數(shù)組的循環(huán)左移,右移,翻轉(zhuǎn)的示例
今天小編就為大家分享一篇C語言實(shí)現(xiàn)數(shù)組的循環(huán)左移,右移,翻轉(zhuǎn)的示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07C語言實(shí)現(xiàn)小學(xué)生隨機(jī)出題測試計(jì)分
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)小學(xué)生隨機(jī)出題測試計(jì)分,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03Cocos2d-x學(xué)習(xí)筆記之Hello World!
這篇文章主要介紹了Cocos2d-x學(xué)習(xí)筆記之Hello World!本文基于vs2010和C++語言開發(fā),需要的朋友可以參考下2014-09-09C++?OpenCV實(shí)現(xiàn)白平衡之完美反射算法
完美反射算法是白平衡各種算法中較常見的一種,比灰度世界算法更優(yōu)。本文將利用C++和OpenCV實(shí)現(xiàn)白平衡中的完美反射算法,需要的可以參考一下2022-05-05