首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为何用一个容器初始化另一个容器用的是迭代器而不是引用

2013-09-06 
为什么用一个容器初始化另一个容器用的是迭代器而不是引用?除了指定范围外,好像用引用也是可以的。不过我在

为什么用一个容器初始化另一个容器用的是迭代器而不是引用?
除了指定范围外,好像用引用也是可以的。不过我在想,如果是用引用,好像就要声明模板来规范类型了,这样会比较麻烦?

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

热点排行