C 的Char traits模板類

2021-03-31 08:56:30 字數 2441 閱讀 9342

char_traits

標頭檔案char_traits.h

// generic char_traits class.note that this class is provided only

//as a base for explicit specialization; it is unlikely to be useful

//as is for any particular user-defined type.in particular, it

//*will not work* for a non-pod type.

字元特性模板

,目的是提供最基本的字元特性的統一的方法函式。

char_traits

繼承了__char_traits_base

template class char_traits

: public __char_traits_base<_chart, _chart>

{};

// specialization for char.

// char

字元型別模板偏特化

__stl_template_null class char_traits

: public __char_traits_base

//char

到int

型別的轉換

static int_type to_int_type(const char_type& __c)

//比較兩個字串

static int ***pare(const char* __s1, const char* __s2, size_t __n) //

到字元的長度

static size_t length(const char* __s)

//字元賦值

static void assign(char& __c1, const char& __c2)

//字串賦值

static char* assign(char* __s, size_t __n, char __c)

};// specialization for wchar_t.

// 寬字元型別模板偏特化

__stl_template_null class char_traits

: public __char_traits_base

{};// class __char_traits_base.

// 字元特性基類

template class __char_traits_base

// 字元比較

static bool eq(const _chart& __c1, const _chart& __c2)

// 字元大小比較

static bool lt(const _chart& __c1, const _chart& __c2)

// 字串比較

static int ***pare(const _chart* __s1, const _chart* __s2, size_t __n)

//

字串長度

static size_t length(const _chart* __s)

return __i;

}//

在串中查詢字元

static const _chart* find(const _chart* __s, size_t __n, const _chart& __c)

// 字串移到另一字串

static _chart* move(_chart* __s1, const _chart* __s2, size_t __n) //

拷貝一字串到另字串

static _chart* copy(_chart* __s1, const _chart* __s2, size_t __n)

// 字串賦值

static _chart* assign(_chart* __s, size_t __n, _chart __c)

// 判斷是否為結束符

static int_type not_eof(const int_type& __c)

// int

到char

型別的轉換

static char_type to_char_type(const int_type& __c)

// char

到int

型別的轉換

static int_type to_int_type(const char_type& __c)

// 判斷倆

int型別是否相等

static bool eq_int_type(const int_type& __c1, const int_type& __c2)

// 返回結束整型值

static int_type eof()

};

char traits類的兩個成員函式

static elem clrcall or cdecl copy s elem first1,size t dest size,const elem first2,size t count static elem clrcall or cdecl move s elem first1,size t...

c 類别範本(模板類)

人們需要編寫多個形式和功能都相似的函式,因此有了函式模板來減少重複勞動 人們也需要編寫多個形式和功能都相似的類,於是 c 引人了類别範本的概念,編譯器從類别範本可以自動生成多個類,避免了程式設計師的重複勞動。有了類别範本的機制,只需要寫一個可變長的陣列類别範本,編譯器就會由該類别範本自動生成整型 d...

C 中的模板(類别範本 模板類 模板函式)

1 class 一般class用於定義類,在模板引入c 後,最初定義模板的方法為 template,這裡class關鍵字表明t是一個型別 2 typename 為了避免class在這兩個地方的使用可能給人帶來混淆,所以引入了typename這個關鍵字,它的作用同class一樣表明後面的符號為一個型別...

C 模板類和類别範本

用相同的類别範本可以組建任何型別的物件集合。在傳統c 中,可能有一個浮點數類或者一個整數類,如果使用類别範本,可以定義一個對兩者都適用的類number。類别範本說明 類别範本說明的一般形式是 template 型別形參表 class 類名 template 型別形參表 返回型別 類名 型別名錶 成員...

C 類别範本和模板類

類别範本的意義和函式模板的意義是一樣的。template 宣告一個模板,虛擬型別名為t。注意 這裡沒有分號。class compare 類别範本名為compare t max t min 不能這樣定義類别範本中的成員函式而 應當寫成類别範本的形式 template tcompare max comp...