当前位置:C++技术网 > 资讯 > vector对象定义与初始化

vector对象定义与初始化

更新时间:2015-12-22 11:57:09浏览次数:1+次

vector是同一种类型对象的集合,每个对象都有一个对应的整数索引值。Vector也被称为容器,因为它可以包含其他对象,但是同一个容器中的对象都必须是同一种类型的。

vector是一个类模板,使用模板可以编写一个类定义或函数定义,而用于多个不同的数据类型。简单来说就是,我们可以定义保存int值的vector,也可以保存string对象的vector,又或者是自定义的类类型对象的  vector

使用vector时,通过将类型放在类模板vector名称后面的尖括号中来指定类型:

vector<T>  vect ;  //指定vect是若干T类型对象的集合
     int类型的容器为例来介绍一下定义对象和初始化的几种方式:
vector<int> vect;			(1)
vector<int> vect(n);			(2)
vector<int> vect(n,i)		        (3)
vector<int> vect(vect1)		(4)

解释下上面的几种定义方法:

(1)    在定义时没有指定容器的大小,也没有在容器中存入元素,这时不能通过像数组那样用下标 的大小,默认容器中每个元素的值为0,指定了容器的大小后,便可以使用下标访问访问,也不能使用下标来进行赋值。那么这种情况要怎么来赋值呢,可以使用push_back()函数来为容器赋值,假如要将10存入容器vect中,便可以用vect.push_back(10)来存储,添加的位置是当前vector的末尾,存入数据后就可以用下标的方式来访问容器中的数据了,当然访问容器中的数据还有其他方法;还有其他的添加数据方式。

(2)   在定义时指定了容器容器中的元素,比如vect[0]访问第一个元素。通过下标对容器中的元素进行赋值的时候,赋值个数不能超过容器的容量,不然是会报错的,不过,依然可以用vect .push_back()方法往容器中添加元素。这种方式是在容器的末尾添加新元素,之所以说是“添加”元素,是因为无论何种情况,push_back()都是在容器的末尾增加新元素,是不用考虑容器的大小的。

(3)   在定义时指定了容器的大小,也指定了每个元素的值。第一个参数代表的是容器的大小,第二个是指定容器中每个元素的值,这种情况下容器中每个元素的值全都相同。然后在对容器的操作跟(2)中提到的方法都一样了。

   (4)这种方式是将一个容器初始化为另一个容器的副本。vect1是已经存在并且指定了大小和初始化的容器,这种方法同时指定了另一个容器vect的元素个数和初值;当然,vect1没有指定大小和初始化也没什么问题,不过这样做也没什么意义。需要注意的是,使用这种方法要保证类型匹配:容器类型和元素类型都必须相同。



几个常用vector对象的操作:

1、vect.size()   返回vect中元素的个数,成员函数size()返回的是相应vector类定义的size_type的值,假如要用变量x来记录vect中元素的个数,x的定义是这样的:
	vector<int>::size_type x = vect.size();
2、下标操作   vector中的对象是没有命名的,可以按对象的位置来访问它们,通常使用下标操作,元素的位置从0开始。下标操作不能添加元素,只能用于获取已经存在的元素。

3、 3、 push_back()   push_back()操作接受一个元素值,并将它作为一个新元素添加到vector对象的后面。