vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.
1.头文件#include<vector>.
2.变量声明:
2.1 例:声明一个int向量以替代一维的数组:vector <int> a;(等于声明了一个int数组a[],大小没有指定,可以动态的向里面添加删除)。
2.2 例:用vector代替二维数组.其实只要声明一个一维数组向量即可,而一个数组的名字其实代表的是它的首地址,所以只要声明一个地址的向量即可,即:vector <int *> a.同理想用向量代替三维数组也是一样,vector <int**>a;再往上面依此类推.
3. 详细的函数实现功能:其中vector<int> ve.
ve.clear() 清空容器中所有数据。
ve.empty() 判断容器是否为空。
ve.erase(pos) 删除pos位置的数据
ve.erase(beg,end) 删除[beg,end)区间的数据
ve.front() 传回第一个数据。
ve.back() 传回最后一个数据,不检查这个数据是否存在
ve.insert(pos,elem) 在pos位置插入一个elem拷贝
ve.pop_back() 删除最后一个数据。
ve.push_back(elem) 在尾部加入一个数据。
ve.resize(num) 重新设置该容器的大小
ve.size() 回容器中实际数据的个数。
ve.begin() 返回指向容器第一个元素的迭代器
ve.end() 返回指向容器最后一个元素的迭代器
ve.reserve() 改变当前vecotr所分配空间的大小
ve.capacity() 容器容量
ve.at(idx)传回索引idx所指的数据,如果idx越界,抛出out_of_range
ve.assign(beg,end):将[beg; end)区间中的数据赋值给ve
ve.assign(n,elem):将n个elem的拷贝赋值给ve
ve.~ vector <Elem>() 销毁所有数据,释放内存
4.函数实现举例:
假定你想建立一个容纳1-1000值的vector<int>
4.1
vector<int> v;
for (int i = 1; i <= 1000; ++i)
v.push_back(i);
在大多数STL实现中,这段代码在循环过程中将会导致2到10次重新分配。
4.2
vector<int> v;
v.reserve(1000); //使用reserve()函数提前设定容量大小
for (int i = 1; i <= 1000; ++i)
v.push_back(i);
这在循环中不会发生重新分配。
4.使用下标访问元素
cout<<ve[0]<<endl; //记住下标是从0开始的
5.使用迭代器访问元素
vector<int>::iterator it; //用来遍历或者指向容器里面的元素
for(it=ve.begin();it!=ve.end();it++)
{
cout<<*it<<endl;
}
6.插入和删除元素
ve.insert(ve.begin()+i,a); 在第i+1个元素前面插入a;
ve.erase(ve.begin()+2); 删除第3个元素
ve.erase(ve.begin()+i,ve.end()+j); 删除区间[i,j-1]; 区间从0开始
微信关注我们
原文链接:https://yq.aliyun.com/articles/604850
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
相关文章
发表评论
资源下载
更多资源Mario
马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。
Oracle
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。
Eclipse
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。
JDK
JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。