第3章 標準庫型別

2022-08-04 07:48:14 字數 4611 閱讀 3120

1.寫出string型別的五種初始化方法

string str;

string str("value");

string str(str2);

string str(n,'c');

string str(iterator1,iterator2);

2.如何對string物件進行讀寫操作,如何讀入未知數目的string物件?

#include

#include

using namespace std;

string s;

cin>>s; //讀到空格為止

cout<

--------------------------------

string s;

while(cin>>s)...

3.如何讀取整行文字?string物件中是否具有換行符?

string line;

while (getline(cin, line))     //取cin的一行給line

cout << line << endl;

4. string物件的8個基本操作是什麼?如何書寫?

s.empty()

s.size()

s[n]

s1 + s2

s1 = s2

v1 == v2

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

5. size操作結果的型別是什麼?

字串中字元的個數

6. 字元處理的標頭檔案是什麼?有哪13個函式?

各種字元操作函式,適用於 string 物件的字元(或其他任何 char 值)。這些函式都在 cctype 標頭檔案中定義。13個函式如下:

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 大寫字母,返回其小寫字母形式,否則直接返回 c。

toupper(c) 如果 c 是小寫字母,則返回其大寫字母形式,否則直接返回 c。

7. string型別的標頭檔案是什麼?

string.h

8. vector型別的標頭檔案是什麼?

vector.h

9. vector的本質是什麼?

本質是類模板

10. 寫出vector的四個初始化方法。

vectorv1;                     vector 儲存型別為 t 物件。預設建構函式 v1 為空。

vectorv2(v1);               v2 是 v1 的乙個副本。

vectorv3(n, i);              v3 包含 n 個值為 i 的元素。

vectorv4(n);                 v4 含有值初始化的元素的 n 個副本。

11.vector物件的7個基本操作是什麼?如何書寫?

v.empty()                     如果 v 為空,則返回 true,否則返回 false。

v.size()                        返回 v 中元素的個數。v.empty() 如果 v 為空,則返回 true,否則返回 false。

v.push_back(t)           在 v 的末尾增加乙個值為 t 的元素。

v[n]                               返回 v 中位置為 n 的元素。

v1 = v2                         把 v1 的元素替換為 v2 中元素的副本。

v1 == v2                      如果 v1 與 v2 相等,則返回 true。

!=, <, <=, >,   >=          保持這些操作符慣有的含義。

12. 編寫for迴圈將vector iv(10)中所有元素設為10;

for  (vector::size_type i=0;i!=iv.size();i++)

13. vector下標操作是否新增元素?

不是,下表操作必須是訪問已經存在的元素,在vector中新增元素通常用push_back()

14.什麼是迭代器?訪問vector中元素的兩種方法是什麼?

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

通過下標訪問

for  (vector::size_type i=0;i!=iv.size();i++)             iv[i]=0;

通過迭代器訪問

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

15. 下標操作和迭代器操作哪乙個更通用?

迭代器操作更通用。

16. 容器的哪兩個函式可以返回迭代器物件?

begin()返回指向容器首元素的迭代器;end()返回指向容器末元素的下乙個位置的元素的迭代器,及超出末端迭代器。

17. 用迭代器的方法操作vectoriv(10)是每個元素為10;

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

18. 容器中的唯讀迭代器型別如何使用?與constiterator有何區別?

vector::const_iterator iter=iv.begin();//只能用於讀取容器內元素,不能改變其值

const vector::iterator iter=iv.begin();//這個迭代器只能指向這乙個位置,不能夠再指向別的位置了,即迭代器本身的值是const,不能修改。

19. iterator的算術運算有哪兩種?

iter + n

iter - n

可以對迭代器物件加上或減去乙個整形值。這樣做將產生乙個新的迭代器,其位置在 iter 所指元素之前(加)或之後(減) n 個元素的位置。加或減之後的結果必須指向 iter 所指 vector 中的某個元素,或者是 vector 末端的後乙個元素。加上或減去的值的型別應該是 vector 的 size_type 或 difference_type 型別。

iter1 - iter2

該表示式用來計算兩個迭代器物件的距離,該距離是名為 difference_type 的 signed 型別 size_type 的值,這裡的 difference_type 是 signed 型別,因為減法運算可能產生負數的結果。該型別可以保證足夠大以儲存任何兩個迭代器物件間的距離。iter1 與 iter2 兩者必須都指向同一 vector 中的元素,或者指向 vector 末端之後的下乙個元素。

20. 寫出bitset的四個初始化方法;

bitsetb;                           b 有 n 位,每位都 0

bitsetb(u);                      b 是 unsigned long 型 u 的乙個副本

bitsetb(s);                      b 是 string 物件 s 中含有的位串的副本

bitsetb(s, pos, n);         b 是 s 中從位置 pos 開始的n 個位的副本。

21. bitset物件的14個基本操作是什麼?

b.any()                b 中是否存在置為 1 的二進位制位?

b.none()             b中不存在置為 1 的二進位制位嗎?

b.count()            b中置為 1 的二進位制位的個數

b.size()               b中二進位制位的個數

b[pos]                 訪問 b 中在 pos 處二進位制位

b.test(pos)         b 中在 pos 處的二進位制位置為 1 麼?

b.set()                 把 b 中所有二進位制位都置為 1

b.set(pos)           把 b 中在 pos 處的二進位制位置為 1

b.reset()               把 b 中所有二進位制位都置為 0

b.reset(pos)       把 b 中在 pos 處的二進位制位置為 0

b.flip()                  把 b 中所有二進位制位逐位取反

b.flip(pos)           把 b 中在 pos 處的二進位制位取反

b.to_ulong()         用 b 中同樣的二進位制位返回乙個 unsigned long 值

os << b                把 b 中的位集輸出到 os 流

第3章 標準庫型別 3

3.3 標準庫vector型別 vector是同一種型別的物件的集合,每個物件都有乙個對應的資料索引值。和string物件一樣,標準庫將負責管理與儲存元素相關的記憶體。我們把vector稱作容器,是因為它可以包含其他物件。乙個容器中的所有物件都必須是同一種型別的。vector是乙個類模板 class...

第3章 標準庫型別 1

3.1 命名空間的using宣告 使用using宣告可以在不需要加字首namespace name 的情況下訪問命名空間中的名字。一旦使用了using宣告,我們就可以直接引用名字,而不需要再引用該名字的命名空間。include stdafx.h include using std cout usin...

第3章 標準庫型別 2

3.2.3 string物件的操作 1.string的size和empty操作 string物件的長度指的是string物件中字元的個數,可以通過size操作獲取。string str anders cout str.size endl empty 成員函式將返回bool值,如果string物件為空...