第三章 標準庫型別

2021-06-08 21:42:37 字數 1606 閱讀 6436

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...