C Primer 筆記 第三章

2022-05-22 15:45:09 字數 3739 閱讀 3583

c++ primer

第三章 標準庫型別

3.1using

宣告例:

using namespace atd;

using std::cin;

3.2string

型別初始化方式

string s1

預設建構函式,s1

為空串string s2(s1)

將s2初始化為s1

的乙個副本

string s3(「value」)

將s3初始化為乙個字串的副本

string s4(n, 'c')

將s4初始化為字元'c'

的n個副本

getline

讀取整行文字

getline

接受兩個引數:乙個是輸入流物件和乙個string

物件。不儲存換行符。

例:while(getline(cin, str));

3.2.3string

物件的操作

s.empty()

判斷是否為空,空則返回true

,否則返回false

s.size()

返回s中字元個數,返回string::type_size

型別,不要賦值給int

(signed

)型別變數

s[n]

返回s中下標為n

的字元,從0

開始計數

s1 + s2

返回新連線的字串

s1 = s2

把s1的內容替換為s2

的副本v1 == v2

比較,返回值為布林型別

!=, <, <=, >, >=

保持慣有特性

3.2.4

物件中字元的處理

標頭檔案:cctype

isalnum(c)

如果c是字母或數字,返回true

isalpha(c)

如果c是字母,返回true

iscntrl(c)

如果c是控制字元,返回true

isdigit(c)

如果c是數字,返回true

isgraph(c)

如果c不是空格但可列印,返回true

islower(c)

如果c是小寫字母,返回true

isprint(c)

如果c是可列印字元,返回true

ispunct(c)

如果c是標點符號,返回true

isspace(c)

如果c是空白字元,返回true

isupper(c)

如果c是大寫字母,返回true

isxdigit(c)

如果c是十六進製制數,返回true

tolower(c)

如果c是大寫字母,則返回相應小寫字母,否則返回本身

toupper(c)

如果c是小寫字母,則返回相應大寫字母,否則返回本身

可列印字元:可顯示表示的字元;

空白字元:空格,製表符,垂直製表符,回車符,換行符和進紙符中的任意一種;

標點符號:除了數字,字母,空白字元以外的可列印的字元。

3.3 vector

標頭檔案:

定義:vectorvname;

vector

不是一種資料型別,而只是乙個類模板,可用來定義任意多種資料型別,vector

型別的每一種都指定了儲存元素的型別。

3.3.1 vector

物件的定義和初始化

vectorv1;

預設建構函式,v1

為空vectorv2(v1);

v2是v1

的乙個副本

vectorv3(n, i);

v3包含n

個值為i

的元素vecorv4(n);

v4含有值初始化的元素的n

個副本c++

並非預先分配合適的空間,而是先初始化乙個空vector

物件,然後動態地增加元素。

3.3.2 vector

物件的操作

v.empty()

判斷是否為空,空則返回true

,否則返回false

v.size()

返回v中字元個數,返回vector::type_size

型別,不要賦值給int

(signed

)型別變數

v[n]

返回v中下標為n

的字元,從0

開始計數

v.push_back(t)

在v的結尾新增乙個值為t

的元素v1 = v2

把v1的內容替換為v2

的副本v1 == v2

比較,返回值為布林型別

!=, <, <=, >, >=

保持慣有特性

3.4

迭代器迭代器是一種檢查容器內元素並遍歷元素的資料型別。

標準庫為每一種標準容器定義了一種迭代器型別,即含有名為iterator

的成員。

每個容器都定義了一對名為begin

和end

的函式,用於返回迭代器。

每種容器還定義了一種名為const_iterator

的型別,該型別只能用於讀取容器內元素的值,但const_iterator

自身可變,它和const

的iterator

物件不同。

迭代器的算數操作:

iter + n (n

為整數)

iter1 – iter2

任何改變vector

長度的操作都會使已存在的迭代器失效。

3.5標準庫bitset

型別標頭檔案及using

宣告:using std::bitset;

定義:bitset<32> bitvec; //32bits, all zero

bitsetbb有n

位,每位都為0

bitsetb(u)

b是unsigned ling

型u的乙個副本

bitsetb(s)

b是string

物件s中含有的位串的副本

bitsetb(s, pos, n)b是s

中從位置pos

開始的n

個位的副本

從string

物件讀入位集的順序是從右向左。

3.5.2 bitset

物件上的操作

b.any()

是否存在1

b.none()

是否不存在1

b.count()

1的個數

b.size()

b中二進位制的位數

b[pos]

返回b中pos

位置的二進位制數

b.test(pos)

pos處是否為1

b.set()

所有設定為1

b.set(pos)

b.reset()

所有設定為0

b.reset(pos)

b.flip()

所有位取反

b.flip(pos)

b.to_ulong()

返回該二進位制表示的unsigned

long值

os<

把b中的位集輸出到os流

count

操作返回型別是標準庫中size_t

型別,該型別定義在stddef.h

中,是乙個與機器相關的unsigned

型別,其大小足以保證儲存記憶體中物件的大小。

c primer 筆記,第三章

初始化string物件的6種方式 string s1 預設空串 sting s2 s1 string s2 s1 string s3 value 直接初始化 string s3 value 拷貝初始化 string s4 n,c 由連續n個字元c組成的串在讀寫string物件時,string物件會自...

C primer 複習筆記(第三章)

3.1 用cin讀入string的時候 忽略開頭所有的空白字元 空格 換行符 製表符 直到再次遇到空白字元時終止 3.2 用getline讀入一行文字的時候 不忽略開頭的換行符,儲存的內容不包括換行符 3.3 string 的 size 的型別是 string size type 是無符號型的 3....

c primer 第三章閱讀筆記

3.1 標頭檔案不應包含using宣告 3.2 string p75 表示可變長的字串行 等號初始化叫做拷貝初始化 不使用 則執行的是直接初始化 用多個值進行初始化 string 物件會自動忽略開頭的空白 空格,換行,製表等 並從乙個真正的字元開始讀起,直到遇見下處空白 getline 引數是乙個輸...