#include <iostream> #include <vector> using namespace std; |
vector<int> v1; |
vector<string> v2; |
vector<int> v1;//先創立一個空的vector vector<int> v2=v1; vector<int> v3(v1); |
vector<int> v1; vector<string> v3(v1);//這樣是不合法的,因為v3指定要用string,而v1是使用int。 |
vector<int> v1{87,88,89}; vector<int> v2={87,88,89}; |
vector<string> s1{"薯","條","控"}; vector<string> s2={"薯","條","控"}; |
vector<int> v1(10,87); //代表我的v1內部有10個元素,每個的初始值都是87 vector<string> s1(15,"薯條控"); //代表我的s1裡面有15個元素,每個元素都4薯條控! |
vector<int> i1(15); //代表i1有15個元素,因為沒給系統要初始化的值,所以它的內容是0(自動初始化)。 vector<string> s1(20); //代表s1有20個元素,每個都是空字串,理由同上。 |
vector<int> v1(10); vector<int> v2{10}; vector<int> v3(10,1); vector<int> v4{10,1}; |
vector<string> s1{10}; vector<string> s2{15,"薯條控"}; |
vector<string> s1{10}; //直接視為vector<string> s1(10) //代表s1有10個空字串作為元素 vector<string> s2{15,"薯條控"}; //直接視為vector<string> s2(15,"薯條控"); //有15個名為薯條控ㄉ元素的字串vector |
vector<int> v1;//我們目前還不知道要多少空間,所以用空的 for(int i=0;i<100;i++) v1.push_back(i); |
cout<<"v1的元素有:"<<endl; for(auto i:v1) cout << i << " "; cout<<endl; |
v1.empty() 若v1是空vector,會回傳1,否則回傳0。 v1.size() 回傳此vector的元素個數。 v1[n] 引用v1的第n個元素,作法跟陣列相同,但有些地方不一樣,下方會補充 v1={a,b,c....} 從第0個元素替換v1原本的元素 |
vector<int> v1;//空vector for(decltype(v1.size()) i=0;i<10;i++) v1[i]=i;// 這是非常錯誤的!因為我們的v1是個空集合,所以沒辦法索引v1[i]到底是甚麼 正確示範: vector<int> v1;//空vector for(decltype(v1.size()) i=0;i<10;i++) v1.push_back(i); 要添加元素只能使用push_back來增加 再來幾個錯誤的示範: vector<int> v2; cout<<v2[5]<<endl; ///v2[5]不存在!!! vector<int> v3(100) cout<<v3[100]<<endl; //錯誤!!因為我們的索引值是0~99,這部分跟陣列的觀念類似! |