为什么用一个容器初始化另一个容器用的是迭代器而不是引用?
除了指定范围外,好像用引用也是可以的。不过我在想,如果是用引用,好像就要声明模板来规范类型了,这样会比较麻烦?
而用迭代器的好处是只要定义参数类型为迭代器的父类就可以了??
[解决办法]
有两个原因吧。
第一,容器是可以用引用,但数组就没引用这一说法了。也就是说,不能用数组的元素来初始化一个容器。如果用一对迭代器的话,数组也可以用来初始化容器。另外,在容器的构造函数内部,对于容器参数,有begin和end可以获取用来初始化的元素,但数组没有begin。所以在构造函数中,难区分参数是一个容器还是数组。
第二,有的时候,并不想用一个容器的所有元素来初始化另外一个容器,而是用某一部分。如果仅仅用一个容器作为参数,达不到这样的要求。