C++内置的数组支持容器的机制,但是它不支持容器抽象的语义。要解决
此问题我们自己实现这样的类。在标准 C++中,用容器向量(vector)实现。
容器向量也是一个类模板。
标准库 vector 类型使用需要的头文件:#include <vector>。vector 是一个类模
板。不是一种数据类型,vector<int>是一种数据类型。Vector 的存储空间是连
续的,list 不是连续存储的。
一、 定义和初始化
vector< typeName > v1; //默认 v1 为空,故下面的赋值是错误的 v1[0]=5;
vector<typeName>v2(v1); 或 v2=v1; 或 vector<typeName> v2(v1.begin(),
v1.end());//v2 是 v1 的一个副本,若 v1.size()>v2.size()则赋值后 v2.size()被
扩充为 v1.size()。
vector< typeName > v3(n,i);//v3 包含 n 个值为 i 的 typeName 类型元素
vector< typeName > v4(n); //v4 含有 n 个值为 0 的元素
int a[4]={0,1,2,3,3}; vector<int> v5(a,a+5);//v5 的 size 为 5,v5 被初始化为 a 的
5 个值。后一个指针要指向将被拷贝的末元素的下一位置。
vector<int> v6(v5);//v6 是 v5 的拷贝。
vector< 类型 > 标识符(最大容量,初始所有值)。
二、 值初始化
1> 如果没有指定元素初始化式,标准库自行提供一个初始化值进行值初始化。
2> 如果保存的是含有构造函数的类类型的元素,标准库使用该类型的构造函数
初始化。
评论2
最新资源