3.1、命名空間的using宣告
通常,在標頭檔案中只定義卻是需要的東西,如只用到std::cout,就應該只定義這個,不要把所有的都給定義出來。
3.2、標準庫string型別
1、string物件的定義和初始化
為了與c相容,字串字面值與標準庫string型別不是同一種型別,程式設計時一定要注意區分字串字面值和string資料型別的使用。
string s1; string s2(s1);string s3("hello");string s4(4,'a');
2、string物件的讀寫
如cin>>s中,忽略輸入前的空格,製表符、換行等。讀字元直到遇到空白字元。
3、用getline讀整行文字,遇到換行結束。換行符並不會儲存在string字串中。
string line;
while(getline(cin,line))
3.3、string物件的讀寫
1、操作
empty(), size(),s[n] s1+s2== !=,<,<=>,>=;
要注意的是size()返回的是string::size_type型別,不要是int型別,因為unsigned要比signed能夠表示兩倍大的資料,而size_type就是乙個
unsigned型別的,要比int大兩倍。
+操作符兩個相加的物件要都是string型別的。
3.4、標準庫vector型別
1、定義和初始化
vector不是乙個資料型別,而是乙個模板類。
如:vectorv1;vectorv2(v1); vectorv3(n,t),vectorv4(n)
vectorv(10,0);定義10個0的v;
2、操作
empty(), size(),push_back(); =,==, 四則運算
其中size返回的也是乙個vector::size_type型別,
push_back(),在末端新增乙個元素。
=,是賦值運算子
還可以有下表操作,但是下表操作並不新增元素,新增元素要用push_back(),如果下標超過size大小,則發生越界
3、迭代器
a、定義: vector::iterator it;
b、begin()和end(),其中begin指向的是第乙個元素,而end指向的是末端的下乙個元素,用來控制越界,本身沒有值,
如果end和begin相等,則為空
c、迭代器可以有四則運算,解操作得到的是元素的值,
如 vector::iterator it = vec.begin();;
it++; \\迭代器+1
cout<<*it<\\解操作,取值
*it = 100 \\對迭代器所指的元素重新賦值
為了使用迭代器但不改變元素的值,就引入了const_iterator迭代器,所指的物件值不能改變。
3.5、標準庫bitset型別
1、定義初始化
用string物件初始化,讀入集的位置是從右到左
如string s="01110";bitset<32> b(s); 從右到左,其餘為0;
用unsigned只初始化bitset物件
2、操作
略,注:可以下標來取值。
第三章 標準庫型別
幾種初始化string類的方法 string型別的輸入操作符 int main void return 0 int main void return 0 bitset 32 bitvec 給出的長度必須是常量表示式,而且是整型。bitsetb u b是unsigned long型u的乙個副本 bit...
第三章標準庫型別
1.命名空間using宣告 using std string 就能使用string,必須引入標頭檔案 更便捷的使用方法 using namespace std 2.標準庫string 型別 物件定義和初始化 string s1 空串 string s2 s1 將s2初始化為s1的乙個副本 strin...
2010 7 20第三章標準庫型別
今天看完了這一章,主要講了string類,vector容器,迭代器,和bitset類的特點,操作和一些值得注意的地方,string和vector相對於c語言來說更傾向整體的操作,用慣了char型別和陣列和指標對於類的操作一下顯得有點不適應。下面總結這幾個類得一些要注意的地方。一.string型別 1...