vector簡單常用用法


Vector是什么?

  vector翻譯為向量,從某種角度來說就是一個可以變長的數組,它會根據需要自動擴充數組的容量,除此之外其是一個STL中的模板類,其

還具有一些內部的方法。

Vector的使用方法

1.添加頭文件

# include <iostream>
# include <vector>
using namespace std;

2.定義vector的對象

vector<int> name;
vector<double> name;//雙精度型
vector <float> name;//浮點數型
vector <char> name;//字符型
vector<vector<int>> name;//類似二維數組

3.訪問vector內部元素

1)通過下標訪問元素

//通過下標來訪問
vector<typename> v;
cout<<v[0]<<endl;

2)通過迭代器來訪問

迭代器可以理解為類似指針的東西,定義其的方法。

vector<typename> ::iterator it;
vector<int>::iterator it;
vector<float>::iterator it;

舉例

# include <iostream>
# include <vector>
using namespace std;
int main(void)
{
    vector<int> vi;
    for(int i=1;i<=5;i++)
    {
        vi.push_back(i);
    }
    //vi.begin()是取vi的首地址,it指向該地址
    vector<int>::iterator it=vi.begin();
    for(int i=0;i<5;i++)
    {
        cout<<*(it+i)<<endl;
    }
}

結果

 

注意begin()函數返回的是vector數組的首地址,而end()並不是返回尾地址,而是末尾元素的下一個元素的地址。除此之外迭代器還實現了兩種自增操作it++和++it

因此使用迭代器遍歷的第二種方法。

# include <iostream>
# include <vector>
using namespace std;
int main(void)
{
    vector<int> vi;
    for(int i=0;i<5;i++)
    {
        vi.push_back(i);
    }
  //不支持it<vi.end()的寫法
for(vector<int>::iterator it=vi.begin();it!=vi.end();it++) { cout<<*it<<' '<<endl; } return 0; }

4.常用函數的使用

1)push_back()

功能:在vector的末尾后面添加一個元素

# include <iostream>
# include <vector>
using namespace std;
int main(void)
{
    vector<int> vi;
    for(int i=0;i<5;i++)
    {
        vi.push_back(i);
    }
    for(int i=0;i<5;i++)
    {
        cout<<vi[i]<<' ';
    }
    return 0;
}

2)pop_back()

vector<int> vi;
for(int i=0;i<3;i++)
{
     vi.push_back(i);        
}
//0,1,2
vi.pop_back();//0,1
for(int i=0;i<vi.size();i++)
{
    cout<<vi[i]<<' ';//0,1
}

3)size()

vector<int> vi;
int size=vi.size();//返回當前元素數目

4)clear()

vector<int> vi;
for(int i=0;i<5;i++)
    vi.push_back(i);//依次加入0,1,2,3,4
vi.clear();//清空所有元素,size=0

5)insert()

vector<int> vi;
for(int i=0;i<5;i++)
{
     vi.push_back(i);  
}
vi.insert(vi.begin()+2,-1);//-1插入vi[2]的位置

6)erase()

vector<int> vi;
vi.erase(vi.beigin()+3);//刪除單個元素,刪除vi[3]
vi.erase(vi.beigin()+1,vi.begin()+4);//刪除多個元素,刪除【first,end】之間的所有元素

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM