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()会报错