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

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

类模版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<<' ';    }

原文链接: https://www.cnblogs.com/huzhongzhong/archive/2011/07/27/2119032.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/29387

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 上午6:49
下一篇 2023年2月8日 上午6:49

相关推荐