一、知識點
1、命名空間的using聲明
2、標準庫string類型
3、標準庫vector類型
4、迭代器簡介
5、標準庫bitset類型
二、要點
3、標準庫vector類型
初始化vector對象的方式 |
vector<T> v1 |
v1保存T類型的對象。采用T的默認構造函數構造 |
vector<T> v2(v1) |
v2是v1的一個副本 |
vector<T> v3(n, i) |
v3包含n個值為i的T對象元素 |
vector<T> v4(n) |
v4包含初始化的T對象的n個副本 |
(1)、注意如果T是沒有默認構造函數的類,則在初始化這種類型的vector對象時,不但需要提供元素個數,還需要提供元素初始值。
(2)、僅能對確知的已存在的元素進行下標操作,而且進行下標操作時,是不能進行添加元素的。
4、迭代器簡介
迭代器是一種檢查容器內元素并遍歷元素的數據類型。
(1)、end操作:end操作返回的迭代器指向vector的“末端元素的下一個”,即指向一個不存在的元素;如果vector是空的,則begin和end是一樣的。
(2)、解引用:迭代器類型可以使用解引用操作符(*操作符)來訪問迭代器指向的元素內容。
(3)、const_iterator:這個類型只能讀取容器,不能修改其值;而const的迭代器是在初始化時指向一個vector,它是不能改變它指向的對象,但是可以改變其指向的值。
5、標準庫bitset類型
bitset類是一種對位集進行處理的類型。
bitset初始化方法 |
bitset<n> b |
b有n位,每位都為0 |
bitset<n> b(u) |
b是unsigned long型u的一個副本 |
bitset<n> b(s) |
b是string對象s中含有的位串的副本 |
bitset<n> b(s, pos, n) |
b是s中從pos開始的n個位的副本 |
(1)、在定義bitset時,要明確bitset含有多少位,須在尖括號中給出它的長度值。
(2)、用unsigned long初始化bitset對象:該值直接轉換為二進制的位模式;如果bitset長度大于unsigned long值的二進制位數,則將其余的高階位置為0;如果小于,則超過的高階位被丟棄。
(3)、用string對象初始化bitset對象:從string對象讀入位集的順序是從右到坐。
(4)、bitset對象上的操作,如下圖
bitset操作 |
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_long() |
從b的二進制位中返回一個unsigned long值 |
os << b |
把b中的位集輸出到os |