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