通常要使用一个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))。