C++ STL學習筆記1--vector

一.vector

頭文件# include<vector>

構建函數5種:

 1.vector<type>test;

   test.push_back(element);


 例:vector<int>test;

        test.push_back(1);

 2.vector<type>test(size);

例:vector<int>test(10);

       for(int i=0;i<10;i++)

    test.push_back(i);

 3.vector<type>test(size,element);

例:vector<int>test(10,10);

4.vector<type>test(a,a+n);

例:int a[5]={1,2,3,4,5};

       vector<int>test(a,a+5);

5.vector<type>test<const vector&>

複製構造函數

二、vector具有的操作:

1.增加元素

   《1》void push_back(element);//element可以是簡單類型,也可以是自定義類

  例:test.push_back(1);//在尾部添加一個元素

   《2》iterator insert(iterator it,type x);

返回類型爲:iterator,在迭代器it之前添加一個元素

  《3》void insert(iterator it,int n,type x);

   //在迭代器it之前添加n個x

《4》void insert(iterator it,const_iterator first,const_iterator last);

 //在迭代器it之前插入另一個相同類型的向量在區間[first,last)內的元素

2.刪除函數

 《1》iterator erase(iterator it);//刪除迭代器it指向的元素

 例:vector<int>test;

test.push_back(1);

test.push_back(2);

test.push_back(3);

test.push_back(4);

test.erase(test.begin()+2);//刪除第三個元素

《2》iterator erase(iterator first,iterator last);//刪除區間[first,last)內的元素

 

 例:vector<int>test;

test.push_back(1);

test.push_back(2);

test.push_back(3);

test.push_back(4);

test.erase(test.begin(),test.begin+2);//刪除0到2個元素

《3》void pop_back();//刪除向量中最後一個元素

《4》void clear();//刪除向量中所有元素

3判斷是否爲空

 bool empty() const;//true爲空

4判斷向量大小

 《1》int size() const;

    例:vector<int>test;

test.push_back(1);

test.push_back(2);

test.push_back(3);

test.push_back(4);

int size=test.size();//獲得向量空間大小

《2》int capacity const;//返回當前向量所能容納的最大元素值;

《3》int max_size() const;//返回最大可允許的vector的數量

5.遍歷函數

 《1》reference at(int pos);//獲得破損位置元素的引用

 例:vector<int>test;

test.push_back(1);

test.push_back(2);

test.push_back(3);

test.push_back(4);

for(int i=0;i<4;i++)

{

 int &nValue=test.at(i);

  cout<<nValue<<"/t";

}

《2》reference front();//返回首元素的引用

 《3》reference back();//返回尾元素的引用

例:vector<int>test;

test.push_back(1);

test.push_back(2);

test.push_back(3);

test.push_back(4);

int &avalue=test.front(); //  獲得首元素的引用

int &bvalue=test.back();//獲得尾元素的引用  

《4》iterator begin();//返回向量頭指針

《5》iterator end();返回向量尾指針後面的指針,end()-1指向最後一個元素

《6》reverse_iterator rbegin();//反向迭代器,最後一個元素指針

 《7》reverse_iterator rend();//反響迭代器,第一個元素之前的指針

6.交換類函數

 《1》void swap(vector&);//交換兩個同類向量數據

  《2》void assign(int n,const type x);//向量中第n個元素設爲x

 《3》void assign(const_iterstor first,const_iterator last);//向量中[first,last)之間的元素設置爲當前向量中的元素

整理例子:

 

 # include<stdio.h>

 #include<iostream>

 #include<vector>

 using namespace std;

 int main(int argc,char *argv[])

{

  vector<int>test;

for(int i=0;i<10;i++)

test.push_back(i);

 int size=test.size();

//下面是各種方式的輸出,三種輸出方式也就意味着有三種改變向量元素值得方法

int j=0;

for(j=0;j<size;j++)

cout<<test[j]<<"\t";//類似於數組的輸出

cout<<endl;

for(j=0;j<size;j++)

{

int &value=test.at(j);

cout<<value<<"\t";//引用的輸出
}

cout<<endl;

 

vector<int>::iterator it=test.begin();

while(it!=test.end()){

 

cout<<*it<<"\t";//迭代器的輸出

it++;

}

cout<<endl;

return 0;

}

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章