码迷,mamicode.com
首页 > 编程语言 > 详细

C++之STL - vector

时间:2016-12-10 19:03:59      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:容器   避免   方式   实例化   元素   span   运行时   margin   c++11   

对vector进行一些总结。


 

一些需要注意的知识点:

1.标准库vector表示对象的集合, 其中所有对象的类型都相同。因为vector中容纳着其他对象,所以也称作容器。

2.C++语言既有类模板(class template),也有函数模板,其中vector就是一个类模板。

3.模板本身不是类或函数,相反可以将模板看做为编译器生成类或函数 编写的一份说明。编译器根据模板创建类或函数的过程称为实例化

4.vector是模板而非类型,由vector生成的类型必须包含vector中元素的类型,例如vector<int>是类型,其中的元素都是int类型的对象。

5.vector能容纳大多数的对象作为其元素,但是因为引用不是对象,所以不存在包含引用的vector。除此之外,其他大多数(非引用)内置类型和类类型都可以构成vector对象,甚至组成vector的元素也可以是vector。

注:引用不是对象,它只是为一个已经存在的对象所起的另外一个名字。因此,因为引用本身不是一个对象,不能定义引用的引用。

6.在c++11之前,vector<vector<..> >必须在外层的尖括号之间添加以一个空格,避免编译器认为是>>右移操作符。但是在C++11标准中,可以不用加空格。这条对其他的容器也适用。


 

定义和初始化vector对象

初始化vector对象的方法:

vector<T> v1        v1是一个空vector,它潜在的元素是T类型的,执行默认初始化

vector<T> v2(v1)      v2中包含v1所有元素的副本

vector<T> v2 = v1      等价于v2(v1),v2中包含v1所有元素的副本

vector<T> v3(n,val)      v3包含n个重复的元素,每个元素的值都是val

vector<T> v4(n)        v4包含了n个重复地执行了值初始化的对象

vector<T> v5{a,b,c..}     v5包含了初始值个数的元素,每个元素被赋予相应的初始值

vector<T> v5 = {a,b,c...}  等价于v5{a,b,c..} ===> C++11 ???

事实上,最常见的初始化方式是先定义个空vector,然后当运行时获取到元素的值后再逐一添加

vector所支持的操作:

v.empty()    是否为空, 空返回真, 非空返回假

v.size()      返回v中元素的个数

v.push_back()

v[n]

 

 

....未完

 

C++之STL - vector

标签:容器   避免   方式   实例化   元素   span   运行时   margin   c++11   

原文地址:http://www.cnblogs.com/cotsnail/p/6155966.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!