class Sales_item
{
public:
Sales_item(void);
~Sales_item(void);
private:
string isbn;
unsigned units_sold;
double revenue;
};
這些操作和資料是類的一部分,也稱為類的成員。
操作稱為成員函數,資料則稱為資料成員。
定義變數和定義資料成員存在非常重要的區別:一般不能把類成員的初始化作為其定義的一部分。當定義資料成員時,只能指定該資料成員的名字和類型。類不是在類的定義裡定義資料成員時初始化資料成員,而是通過稱為建構函式的特殊成員函數控制初始化。
使用class關鍵字來定義類,那麼預設任何成員都隱式指定為private,如果使用struct來定義,預設是public。
當進行string對象和字串面值混合串連操作時,+操作符左右運算元必須至少有一個string類型。
vector類模板而非類類型
vector<T> v1;-----------------------vector檔案類型為T的對象。
vector<T> v2(v1);------------------ v2是v1的一個副本。
vector<T> v3(n,i);------------------ v3包含n個值為i的元素。
vector<T> v4(n);--------------------v4含有值初始化的元素的n個副本。
vector對象(以及其他標準容器物件)的重要屬性就在於可以在運行時高效地添加元素。
C++程式員習慣於優先選用!=而不是<來編寫迴圈判斷條件。
迭代器是一個檢查容器內元素並遍曆元素的資料類型。
迭代器提供了比下標操作更通用化的方法:所有的標準庫容器都定義了相應的迭代器類型,而只有少數的容器支援下標操作。
vector<int>::iterator iter;
const_iterator只能用於讀取容器內元素,但不能改變其值。
iter1-iter2兩個迭代器之間的距離
標準庫bitset類--------簡化了位集的處理
#include <bitset>
using std::bitset
bitset<32> bitvec; //32bits,all zero
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個位副本
用string對象初始化bitset對象
string strval("1100");
bitset<32> bitvec4(strval);//0,1位為0;2,3位為1。
string對象和bitset對象之間是反向轉化的:string對象的最右邊字元用來初始肥bitset對象的低階位。