vector中元素为类对象时的一些使用方法
2015-07-12 21:13
253 查看
通常要使用一个vector来存放一些类对象时,基本都是使用以下的方法:
1.vector<Label> labels(1000),这里则是使用Label类的默认无参构造函数来实现该vector的初始化(这里假设Label为自己定义的类);
2.若要考虑Label的带参构造函数,则使用这种方式:vector<Label> labels(1000 , Label(5)),这里假设Label的带参构造函数需要一个int参数,同时需要考虑一个问题,就是使用Label(5)来初始化vector中的1000个元素,是浅拷贝,如果需要用到深拷贝,则需要对Label类编写一个拷贝构造函数;
3.需要使用resize对labels申请空间,一般都是使用labels.resize(1000),这里依然是使用的默认构造函数。但resize()函数可以有两个参数,第一个是vector容器的新大小,第二个是要加入容器vector的新元素,如labels.resize(1000 , Label())(这种其实就是labels.resize(1000)),还有labels.resize(1000 , Label(5))。
1.vector<Label> labels(1000),这里则是使用Label类的默认无参构造函数来实现该vector的初始化(这里假设Label为自己定义的类);
2.若要考虑Label的带参构造函数,则使用这种方式:vector<Label> labels(1000 , Label(5)),这里假设Label的带参构造函数需要一个int参数,同时需要考虑一个问题,就是使用Label(5)来初始化vector中的1000个元素,是浅拷贝,如果需要用到深拷贝,则需要对Label类编写一个拷贝构造函数;
3.需要使用resize对labels申请空间,一般都是使用labels.resize(1000),这里依然是使用的默认构造函数。但resize()函数可以有两个参数,第一个是vector容器的新大小,第二个是要加入容器vector的新元素,如labels.resize(1000 , Label())(这种其实就是labels.resize(1000)),还有labels.resize(1000 , Label(5))。
相关文章推荐
- C++ push方法与push_back方法 浅析
- linux shell 连接数据库的几种方法
- HDU-1016素数环问题
- px 与 dp, sp换算
- 【PHP教程一】在Mac下配置php开发环境:Apache+php+MySql
- 2014——我的求职(一个)
- 单例模式的C++实现
- iOS 9公测版来了 有什么变化?
- the classical examination test
- iOS 界面调试工具--Reveal
- 快速排序
- linux shell 连接数据库的几种方法
- nginx内核参数优化
- 【leetcode】Largest Rectangle in Histogram
- 为什么C++中拷贝构造函数的参数类型必须是引用?
- whu_选课
- web服务器监控工具
- 学习的路径
- leetcode刷题 ,总结,记录,备忘27
- nodejs http响应两次