容器的定义和初始化一共有6种方法
//默认构造函数
C c;
//将一个容器初始化为另外一个容器的拷贝 分两种
//case1 直接拷贝
C c1(c2);
C c1 = c2;
//case2 拷贝由迭代器对指定的元素范围
C c(b,e); //b ,e 比一定是begin和end只要是同一个容器的迭代器即可
//列表初始化
C c{a,b,c....};
C c={a,b,c...};
//顺序容器相关的构造函数
C c(n);
C c(n,t);
但是array和其他容器有所不同,所以单独考虑一些特殊的情况
1.默认构造函数
如果C是array,则c中的元素按照默认方式初始化,其他的容器都是空(其中的原因是array在定义的时候必须指定大小而其他的容器无需指定大小)
2.将一个容器初始化为另外一个容器的拷贝case1:直接拷贝
对于array,两个容器的的类型大小必须一致,其他容器类型一致即可(原因是把array的大小归于容器的类型)
2.将一个容器初始化为另外一个容器的拷贝case2:拷贝由迭代器对指定的元素范围
array不适用这种方法,对于其他容器使用这种方法,可以不用考虑容器类型并且容器内的元素可转换即可
3.列表初始化
列表初始化中的元素如果小于容器的大小进行值初始化。
4.顺序容器相关的构造函数
以为array已经指定了大小,如果再用这种方法,就矛盾了,所以也不适用