string和vector是c++中的容器,由於兩者操作方式差不多,因此放在一起。
初始化:
#include #include using namespace std;
int main(void)
一些基本操作:
#include #include using namespace std;
int main(void)
關於getline和cin的區別:getline會讀取空白符而cin不會,cin遇到空白符就會結束讀取
字串可以通過下標的方式讀取字元
vector的一般形式為vectorobject,vector中儲存的物件型別都是一樣。需要vector stl
#include #include using namespace std;
int main(void)
; /*有點類似於陣列初始化,5個物件分別初始化為1、2、3、4、5*/
vectorv7 = ; /*同陣列初始化*/
return 0;
}
#include #include using namespace std;
int main(void)
; /*將列表中的值依次替換v1中的物件*/
v1[0]; /*下標查詢*/
v1 >= v2; /*vector容器之間可以互相比較*/
return 0;
}
注意: vector物件之間不能進行+, -運算
c++中的容器有迭代器, 可以對容器的物件進行訪問, 修改等操作. 這裡介紹兩個基本的迭代器成員:begin和end. (看用法像是一種指標)
begin: 指向容器中的第乙個物件
end: 指向容器中的最後乙個物件的後乙個位置
迭代器的部分操作
#include #include using namespace std;
int main(void)
return 0;
}
其中vector可以用auto來代替, 讓編譯器自動幫我們判斷迭代器的型別. string的迭代器用法與vector的差不多, 不過裡面物件的型別換成了字元.
注意: 使用迭代器時不要更改容器的大小, 這樣會導致end迭代器失效
c++中的陣列和c語言中的陣列並沒有什麼太大的區別, 不過陣列中同樣擁有像begin和end那樣的迭代器成員, 不過是函式
#include #include using namespace std;
int main(void)
; int* begin = begin(ch); /*begin和end函式型別都是指標, 而且兩者之間都可以進行簡單的運算*/
int* end = end(ch);
while (begin != end)
cout << endl;
return 0;
}
陣列可以賦值給vector和string物件, 但是反過來不可以
string物件需要賦值給陣列, 則需要函式c_str()
用c語言表示字串是const char* variable,因為字串是常量所以要加const
#include #include #include using namespace std;
int main(void)
c primer 筆記,第三章
初始化string物件的6種方式 string s1 預設空串 sting s2 s1 string s2 s1 string s3 value 直接初始化 string s3 value 拷貝初始化 string s4 n,c 由連續n個字元c組成的串在讀寫string物件時,string物件會自...
C Primer 筆記 第三章
c primer 第三章 標準庫型別 3.1using 宣告例 using namespace atd using std cin 3.2string 型別初始化方式 string s1 預設建構函式,s1 為空串string s2 s1 將s2初始化為s1 的乙個副本 string s3 valu...
C Primer學習(第三章)
初始化string物件的方式 string s1 string s2 s1 string s2 s1 string s3 value string s3 value string s4 n,c 使用getline讀取一整行 int main int b begin a int e end a 對陣列...