C 知識點4 vector與string簡述

2021-10-06 12:42:35 字數 2869 閱讀 1936

string

使用string類必須包含標頭檔案#include

string物件的初始化

1.預設初始化

string s1;
2.拷貝初始化

string s4=s1;

string s5="qwer";

3.直接初始化

string s3("qwer"); 

string s5="qwer";

string s6(10,'c');

上述**的執行結果

vector類似c語言中的陣列,是c++標準庫中的模板類,使用vector時,需要包含標頭檔案 #include

vector的初始化(以int為例)

1.預設初始化

vectorv;
2.列表初始化

vectorv2=; 

vectorv3;

3.拷貝初始化

vectorv4=v2;
4.直接初始化

vectorv5(v2); 

vectorv6(10,1);

5.用陣列初始化vector,也是直接初始化的一種

int a[5]=; 

vectorv9(a, a+sizeof(a)/sizeof(int));

**

void vectorinit()

; vectorv3;

vectorv4=v2;

vectorv5(v2);

vectorv6(10,1);//初始化十個元素,每個都是1

vectorv7(10);//初始化10個元素,都是0

cout<< v1.size()<::size_type i="0;i::size_type" p>

//vectorv9(10,r);//不能定義引用的vector

int a[5]=;

vectorv9(a, a+sizeof(a)/sizeof(int));

for (std::vector::size_type i=0;i執行結果

預設初始化的vector無任何元素,vectorv6(10,1)呼叫建構函式初始化10個元素,每個元素都是1,vectorv7(10)呼叫建構函式初始化10個元素,都是0。

因為vector中儲存的是變數或物件,而引用只是個別名,不是物件,所以不能定義引用的vector

也可以向vector物件傳入陣列的任意兩個元素的位址,用來初始化vector

vector中儲存string與列表初始化

void stringinvector()

;//等價於vectorv1(10, "hi")

vectorv3;//等價於vectorv3(10)

vectorv4;

cout<::size_type i="0;i::size_type" alt="" height="122" src="" width="418">

**的執行結果顯示v1的大小為10,元素都是hi,v3的大小為10,元素都是空串,v4的大小為1,元素是hi

當使用列表初始化的方法初始化儲存string的vector時,vectorv1的初始化結果和vectorv1(10, "hi")相同,vectorv3的初始化結果和vectorv3(10)相同

vector元素的新增和訪問

當向vector中新增元素時,可以使用函式push_back(),該方法將元素新增到vector的尾部,如果想要訪問vector中的某個元素,可以使用下表訪問,類似於陣列,也可以使用迭代器

string,char陣列,char指標

可以用char陣列或者char指標初始化string,但是反之不行

上述**用char陣列初始化string,反之則不可以

如果想用string物件初始化char指標,需要呼叫string物件的c_str()函式,c_str的返回值是const char *,需要將左值用const修飾,否則會報錯

正確做法如下:

參考:《c++ primer》

C語言知識點4

第八節 字元 1 字元資料的合法形式 1 是字元佔乙個位元組,1 是字串佔兩個位元組 含有乙個結束符號 0 的ascii數值表示為48,a 的ascii數值是97,a 的ascii數值是65。一般考試表示單個字元錯誤的形式 65 1 字元是可以進行算術運算的,記住 0 0 48 大寫字母和小寫字母轉...

C語言知識點 4

1.鏈結,是把專案中所有相關聯的.o目標檔案跟c語言函式庫合併在一起,生成乙個可執行檔案 2.p walk 代表給p所指向的物件傳送一條walk訊息 3.成員變數是每個物件都有乙份,而方法是物件共用乙份 4.類的實現地方是寫方法的實現的,類的方法中,小括號只用來括住型別 5.在函式中建立的物件,函式...

c 學習(4)vector,檔案資料處理

1,vector 注意容易混淆的問題 各種括號 vectorv1 10 v1有10個int元素,每個都初始化為0 vectorv2 v2有1個元素,值是10 vectorv3 10 v3是有10個元素的陣列,相當於二維陣列。每個元素都是乙個空vector物件 vectorv4 10,1 v4有10個...