国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

c++中template對字符串的處理方法

2020-01-26 15:27:12
字體:
來源:轉載
供稿:網友

C++中的Template作用是把僅類型不同但功能相似的函數合并在一起,但是有時候template中的函數并不能滿足所有的類型調用。如下所示:

template <class Kty>inline int hash_wrap(const Kty& k){return (int)k;}

所有的數字類型使用該模板都沒有問題,但是string類型卻不行,因為不支持有string到int的類型轉換(編譯過程中)。這樣我們就需要在該模板外添加一個對string類型的支持,代碼如下:

template <>inline int hash_wrap<string>(conststring & k){return k.size();}

其中template <>表明該函數是模板類型的延伸,<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;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 婺源县| 本溪| 苏尼特右旗| 贵州省| 巴青县| 邵阳县| 顺平县| 宁南县| 马公市| 图们市| 香格里拉县| 梨树县| 汤原县| 安乡县| 波密县| 邵阳县| 克什克腾旗| 霍邱县| 蒲城县| 五大连池市| 蚌埠市| 张家口市| 江北区| 文登市| 田林县| 凤山县| 古丈县| 涪陵区| 贺州市| 新密市| 郓城县| 铜山县| 垣曲县| 彰化县| 昭觉县| 平定县| 锦州市| 福鼎市| 泸州市| 泸州市| 苍溪县|