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 引數是乙個輸...