vector 遍歷


vector向量容器,是數組的一個泛化推廣。實現了類似於數據結構中順序表的操作。

vector容器是一個模板類,可以存放任何類型的對象(但必須是同一類對象)。vector對象可以在運行時高效地添加元素,並且vector中元素是連續存儲的。

 

下面給出了vector的幾種遍歷

#include<iostream>
using namespace std;
#include<vector>
void print(const vector<int> &v);
void display1(vector<int> &v);
void display2(vector<int> &v);
int main(void)
{
    vector<int> v;//構造一個空元素的vector對象
    for(int i=1;i<6;i++)
    {
        v.push_back(i);
    }
    cout<<"v的值為:";
    print(v);
    cout<<"v的值為:";
    display1(v);
    cout<<"v的倒序值為:";
    display2(v);

    vector<int>::iterator i;
    cout<<"v.begin()的值:"<<*v.begin()<<endl;
    cout<<"v.end()-1的值:"<<*(v.end()-1)<<endl;// cout<<*v.end();會報錯
    cout<<"v.rbegin()的值:"<<*v.rbegin()<<endl;
    cout<<"v.rend()-1的值:"<<*(v.rend()-1)<<endl;
    getchar();
}
void print(const vector<int> &v)//使用數組遍歷
{
    for(int i=0;i<v.size();i++)//v.size()得到vector元素的個數,因為和數組一樣從0開始,所以遍歷到v.size()-1;
    {
        cout<<v[i]<<" ";
    }
    cout<<endl;
}

void display1(vector<int> &v)//使用vector迭代器遍歷
{
    vector<int>::iterator i;
    for(i=v.begin();i<v.end();i++)
    {
        cout<<*i<<" ";
    }
    cout<<endl;
}

void display2(vector<int> &v)//使用反向迭代器遍歷
{
    vector<int>::reverse_iterator i;
    for(i=v.rbegin();i!=v.rend();i++)
    {
        cout<<*i<<" ";
    }
    cout<<endl;
}

運行結果:

1.數組的形式遍歷,size()函數得到vector的元素個數,類似於數組中的length;使用[]符號,和數組的遍歷一樣。
2.使用迭代器遍歷。

  begin:返回指向vector第一個元素的迭代器

  end:返回指向vector末尾的迭代器(注意:是指向vector末尾,不是指向vector的最后一個元素),若使用cout<<*v.end()會報錯





免責聲明!

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



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