vector< vector<int> > v(m, vector<int>(n) );是什么意思?
vector< vector<int> > vvi(m, vector<int>(n) );
似乎是二维数组,但是vector<int>(n) 看不懂什么意思 展开
定义了一个vector容器,元素类型为vector<int>,初始化为包含m个vector<int>对象,每个对象都是一个新创立的vector<int>对象的拷贝,而这个新创立的vector<int>对象被初始化为包含n个0。
每部分解析:
构造函数vector(size_typen, const allocator_type& alloc = allocator_type())表示构造一个使用alloc分配内存的含n个元素的vector,其中每个元素执行值初始化。
因此vector<int>(n)表示构造一个无名且含n个0的vector<int>对象。
构造函数vector表示构造一个使用alloc分配内存的含n个元素的vector,其中每个元素是val的一个拷贝。因此整条语句的含义如第一段所说。
扩展资料:
优点:
Java中,数组对象一旦创建后,其元素的个数 不能被修改。而Java.util包中的Vector类(向量)提供类似于数组的能力,且能够动态地调整自身的大小。Vector类似于一个数组,但与数组相比在使用上有两个优点:
① 使用的时候无须声明上限,随着元素的增加,Vector的长度会自动增加;
② Vector类提供额外的方法来增加、删除元素,比数组操作高效。
插入功能:public final synchronized void addElement(Object obj)
将obj插入向量的尾部。obj可以是任何类的对象。对同一个向量对象,可在其中插入不同类的对象。但插入的应是对象而不是数值,所以插入数值时要注意将数值转换成相应的对象。
参考资料来源:百度百科-vector
每部分解析:
构造函数vector(size_type n, const allocator_type& alloc = allocator_type())表示构造一个使用alloc分配内存(如果是初学,不用管这个,使用默认的就好)的含n个元素的vector,其中每个元素执行值初始化(对于内置类型即初始化为0)。因此vector<int>(n)表示构造一个无名且含n个0的vector<int>对象。
构造函数vector(size_type n, const value_type& val, const allocator_type& alloc = allocator_type())表示构造一个使用alloc分配内存的含n个元素的vector,其中每个元素是val的一个拷贝。因此整条语句的含义如第一段所说。
从结果上看,类似于创建了一个m×n的二维数组,而且可以通过v[i][j]的方式来访问元素(vector支持下标访问元素)。
vvi就是一个含有m个元素的数组,每个元素又是一个数组,即vector<int>(n).
vector(n),也就是缺省了其名 ,本来好比是vectorx(n);这里把x这个名称给省略了是吧
省略了其实就是构造了一个没有名字的临时对象。
vector<int>(n) 是指开了n个空间,你也可以带上初值 vectot<int>(n,1)