C Primer 第三章 標準庫型別

2022-09-07 18:06:17 字數 1880 閱讀 5254

string 物件看成是乙個word,這是這個word中可以是ascii的所有字元。

3.2.2 string 物件的讀寫

1.讀入未知數目的string物件

int main(){

string word;

while(cin>>word)//返回讀入的資料流

cout << word << endl;

return 0;

2.用getline讀取整行文字

int main(){

string line;

while(getline(cin, line))

cout << line << endl;

return 0;

3.2.3 string物件的操作

size()操作返回的是string::size_type

size是這個word的長度

上面說了,這個word中的字元可以是ascii中的任何乙個

因此,自然的,函式來判斷word中的字元是哪個型別的。

isalnum(c) 字母或數字 | isalpha(c) 字母 | iscntrl(c) 控制字元 。 。 。

這些函式都在cctype中.

3.3 標準庫vector型別

vector是乙個類模板

3.3.1 vector物件的定義和初始化

vectorv1; vectorv2(v1); vectorv3(n,i); vectorv4(n);

如果沒有指定元素的初始化式,那麼將進行值初始化,

即:vectorfvec(10); //10 elements, each initialized to 0

for(vector::size_type ix = 0; ix != ivec.size(); ++ix)

for迴圈用!= 而不用<

3.3.2 vector 物件的操作

v.empty(); v.size(); v.push_back(t); v[n]; v1 = v2; v1 == v2; !=, < <=, >, >=

3.4 迭代器簡介

除了使用下標來訪問vector物件的元素外,標準庫還提供了另一種訪問元素的方法,使用迭代器.

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

標準庫為每一種標準容器定義了一種迭代器型別.

vector::iterator iter;

begin操作返回的是第乙個元素,end操作返回的是迭代器指向的vector的"末端元素的下乙個".

vector::iterator iter = ivec.begin();

如果vector為空,begin返回迭代器與end返回的迭代器相同.

由end操作返回的迭代器並不指向vector中任何實際元素,只起乙個哨兵的作用.

迭代器型別的解引用操作返回迭代器當前所指向的元素. 根據上面定義,*iter 就是 ivec[0]。

*iter = 0; 就是將ivec的第乙個元素賦值0

如果iter指向第乙個元素,則++iter指向第二個元素.

for(vector::size_type ix = 0; ix != ivec.size(); ++ix)

ivec[ix]=0;

for(vector::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)

iter = 0;

const_iterator,唯讀迭代器.

迭代器的算術操作

iter + n ; iter - n; iter1 - iter2;  vector::iterator mid = vi.begin() + vi.size() / 2;

3.5 標準庫bitset型別

C primer第三章 標準庫型別

一 標準庫string型別 include 1 string物件的定義和初始化 表3.1幾種初始化string物件的方式 string s1 預設建構函式,s1為空串 string s2 s1 將s2初始化為s1的乙個副本 string s3 value 將s3初始化為乙個字串字面值的副本 stri...

C Primer 第三章 標準庫型別

c 定義了兩種最重要的標準庫型別 string 和 vector,它們分別定義了大小可變的字串和標準庫。其中,string型別支援長度可變的字串,vector可用於儲存一組指定類 型的物件。3.2標準庫string 型別 string型別支援長度可變的字串,使用者程式要使用string型別物件,必須...

《C Primer》 第三章 標準庫型別

除低階資料型別,c 標準庫還定義了許多更高階的抽象資料型別 abstract data type 比如string,vector,bitset。命名空間的using宣告 使用using宣告可以在不需要加字首namespace name 的情況下訪問命名空間中的名字。using namespace n...