根據《ACM程式設計》寫的,用實例展示vector用法。 方法:push_back(), insert(), erase(), clear(), size(), empty(); 演算法:reverse(), sort(). ...
根據《ACM程式設計》寫的,用實例展示vector用法。
方法:push_back(), insert(), erase(), clear(), size(), empty();
演算法:reverse(), sort().
1 #include <vector> 2 #include <iostream> 3 #include <algorithm> 4 using namespace std; 5 template <typename T> 6 void printVec(const vector<T> &v){ //函數模板輸出向量 7 for(int i=0;i<v.size();i++) 8 cout<<v[i]<<' '; 9 cout<<endl<<endl; 10 } 11 12 int main(){ 13 vector<int> iv; //定義向量 14 iv.push_back(2); //尾部追加新元素 15 iv.push_back(7); 16 iv.push_back(3); 17 iv.push_back(4); 18 iv.push_back(1); 19 iv.push_back(9); 20 cout<<iv[2]<<endl; //下標訪問元素 21 22 vector<double> dv(3); //定義向量 23 cout<<dv[2]<<endl; //預設值為0 24 25 vector<double> dv1(6,7.18); 26 cout<<dv1[2]<<endl; //預設值為7.18 27 28 vector<int>::iterator it; //迭代器輸出向量 29 for(it=iv.begin();it!=iv.end();it++) 30 cout<<*it<<' '; 31 cout<<endl; 32 33 iv.insert(iv.begin(),8); //在首元素前插入8 34 iv.insert(iv.begin()+2,6); //在第3個元素前插入6 35 iv.insert(iv.end(),5); //在末元素前插入5 36 printVec(iv); //調用printVec函數 37 38 dv1.erase(dv1.begin()+3); //刪除一個元素 39 printVec(dv1); 40 41 42 dv1.erase(dv1.begin()+2,dv1.end()-1); //刪除多個元素(包括左值不包括右值) 43 printVec(dv1); 44 cout<<endl; 45 46 dv1.clear(); //清空向量 47 cout<<dv1.size()<<' '<<dv1.empty()<<endl; 48 //返回元素個數/向量是否為空 49 50 reverse(iv.begin(),iv.end()); //使用reverse反向排列演算法 51 printVec(iv); 52 53 sort(iv.begin(),iv.end()); //使用sort升序排列 54 printVec(iv); 55 return 0; 56 }