歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

STL容器vector基礎用法小結

STL容器vector基礎用法小結根據《ACM程序設計》寫的,用實例展示vector用法。

《ACM程序設計》高清晰PDF書簽版(曾宗根) 下載:http://www.linuxidc.com/Linux/2016-03/129510.htm

方法:push_back(), insert(), erase(), clear(), size(), empty();

算法:reverse(), sort().

#include <vector>
 #include <iostream>
 #include <algorithm>
 using namespace std;
 template <typename T>
 void printVec(const vector<T> &v){  //函數模板輸出向量
    for(int i=0;i<v.size();i++)
        cout<<v[i]<<' ';
    cout<<endl<<endl;
 }
 
 int main(){
    vector<int> iv;                //定義向量
    iv.push_back(2);                //尾部追加新元素
    iv.push_back(7);
    iv.push_back(3);
    iv.push_back(4);
    iv.push_back(1);
    iv.push_back(9);
    cout<<iv[2]<<endl;              //下標訪問元素
   
    vector<double> dv(3);          //定義向量
    cout<<dv[2]<<endl;              //默認值為0
   
    vector<double> dv1(6,7.18);
    cout<<dv1[2]<<endl;            //默認值為7.18
   
    vector<int>::iterator it;      //迭代器輸出向量
    for(it=iv.begin();it!=iv.end();it++)
        cout<<*it<<' ';
    cout<<endl;
   
    iv.insert(iv.begin(),8);        //在首元素前插入8
    iv.insert(iv.begin()+2,6);      //在第3個元素前插入6
    iv.insert(iv.end(),5);          //在末元素前插入5
    printVec(iv);                  //調用printVec函數
   
    dv1.erase(dv1.begin()+3);      //刪除一個元素
    printVec(dv1);
   
   
    dv1.erase(dv1.begin()+2,dv1.end()-1);  //刪除多個元素(包括左值不包括右值)
    printVec(dv1);
    cout<<endl;
   
    dv1.clear();                    //清空向量
    cout<<dv1.size()<<' '<<dv1.empty()<<endl; 
                                            //返回元素個數/向量是否為空
   
    reverse(iv.begin(),iv.end());          //使用reverse反向排列算法
    printVec(iv);
   
    sort(iv.begin(),iv.end());              //使用sort升序排列
    printVec(iv);
    return 0;
 }

Copyright © Linux教程網 All Rights Reserved