C++ Vector 序列容器 之 使用vector和迭代器

来源:互联网 发布:网络的词语 编辑:程序博客网 时间:2024/06/14 18:16

类模版vector提供的数据结构具有随机访问连续的内存位置。这样可以通过下标运算符[]高效直接访问vector中的任何一个元素。就像C、C++中原始数组那样。当容器中的数据必须方便的根据下标访问或者需要排序。最长使用的是类模版vector。当vector的内存耗尽,会分配一块更大的内存,将原来的数据复制到新的内存并销毁旧的内存。

提示:选择vector容器可以实现最佳的随机访问性能。

复制代码
#include <iostream>using namespace std;#include <vector>using std::vector;//为了用类模版vector,必须包含这个头文件template<typename T> void printvector(const vector<T> &integers2);int main(){    const int size=6;    int arry[size]={1,2,3,4,5,6};    vector<int> intergers;    cout<<"The initial size of intergers is: "<<intergers.size()        <<"\nThe inttial capacity of intial is: "<<intergers.capacity();    intergers.push_back(2);    intergers.push_back(3);    intergers.push_back(4);    cout<<"\nThe size of intergers is "<<intergers.size()        <<"\nthe capacity of intergers is "<<intergers.capacity();    //上面演示了vector 的size和capacity函数的用法.    //capacity返回vector在动态改变大小以容纳更多元素之前能保存的元素数量    cout<<"\nOutput intergers:";     for (int *ptr=arry;ptr!=arry+size;ptr++)//arry+size 指向6     {         cout<<*ptr<<' ';     }   cout<<endl;   for (int i=0;i<=size;i++)//这个结果看截图,我想可能是C++专门让最后一个元素和下一个位置元素相等。   {       cout<<"  "<<*(arry+i);   }   cout<<endl;   cout<<"\nOUTput vector using interator notion:";   printvector(intergers);   cout<<"\nReversed contents of vector intergers:";       vector<int>::reverse_iterator re;//这里声明一个reverse_iterator,可用于逆向迭代vector。       //和begin和end一样.rbegin和rend函数根据容器是否为常量返回一个const_reverse_iterator或reverse_iterator   vector<int>::reverse_iterator temiterator=intergers.rend();   for (re=intergers.rbegin();re!=temiterator;++re)   {       cout<<*re<<' ';   }   cout<<endl;       return 0;}template<typename T>void printvector(const vector<T> &integers2){    typename vector<T>::const_iterator ci;    for(ci=integers2.begin();    ci!=integers2.end();ci++)        cout<<*ci<<' ';    }
原创粉丝点击