C string到底是什麼

2022-04-15 06:06:02 字數 1052 閱讀 9811

c++ string到底是什麼?

要回答這個問題,先要了解什麼是basic_string。

看一下basic_string的宣告:

template < class chart,                          //

定義字串中字元的型別

class traits = char_traits, //

basic_string::traits_type

class alloc = allocator//

basic_string::allocator_type

> class basic_string;

可見,basic_string實質上是乙個類模板。

再解釋的稍微詳細一些:

1.關於char_traits

宣告:

template  struct char_traits;

作用:即:它指定了字元的屬性,並且提供了作用在字元或字串行上的某些操作的特定語義。

2.關於allocator

宣告:

template  class allocator;//

標頭檔案下 allocator:分配器

現在我們來看string的宣告:

typedef basic_string, allocator> string;

現在,我們明白了,原來是這麼回事:

用基本型別char例項化類模板basic_string,得到乙個具體的模板類,然後,將其typedef為string。

換句話說,string本質上是乙個模板類,就是basic_string, allocator>,string是對應的「簡稱」。 直觀地理解,string的例項物件(就是說 string str;中的str)是乙個char序列,但不同於char* str,stingr str帶有許多封裝好的針對自己的操作。

ps:basic_string還有其它例項,比如說:

typedef basic_string, allocator> wstring;

敏捷到底是什麼?

文 ivar jacobson 在支援軟體工程 比如rational統一過程rup 與敏捷陣營 比如scrum或是xp 之間,人們一直存在著衝突。也不難理解,因為這兩種方法間都是在用著彼此並不相容的方式來描述的。其實大可不必,因為他們背後的觀點全然是相輔相成的。關鍵在於該如何用對兩者來說都公平的方式...

我們到底是什麼?

我們到底是什麼?我們是一種生物電流 生物電流有幾種狀態,喜怒哀樂等,可以根據外部環境進行自我切換 該種生物電流附屬在一種器官硬體上面 我們可以從器官硬體上感知一些資訊,產生新的資訊生物電流,新產生的生物電流符合原先的標準 我們可以把資訊電流儲存在器官硬體上,但具體如何儲存等資訊無法被我們感知 我們的...

SDN到底是什麼

sdn到底是什麼?雖然這個概念已經被炒到了,但還沒有人對其給出乙個明確的概念。盛科網路總監張衛峰撰寫了自己關注sdn以來,對其認識的四個階段,最後乙個階段又回到了sdn字面的意思軟體定義網路,每個階段作者的新觀點,也會給我們帶來一些啟發。以下為原文 我對sdn的認識可以分為四個階段,最後乙個階段是在...