类模版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
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!