早教吧 育儿知识 作业答案 考试题库 百科 知识分享

容器内的元素操作看到书上说,不能定义引用类型的引用,可为什么reference却可以保存引用类型?list::referenceval=*ilist.begin();list::referenceval2=ilist.front();front函数返回的是容器的第一个元素的引

题目详情
容器内的元素操作
看到书上说,不能定义引用类型的引用,可为什么reference却可以保存引用类型?
list::reference val = *ilist.begin();
list::reference val2 = ilist.front();
front函数返回的是容器的第一个元素的引用,而reference是value_type&的同义词.那说明val是引用类型,而函数返回的也是引用,那不就跟“不能定义引用类型的引用”有矛盾吗?
value_type这个类型怎么用?
你可以举一些“引用类型的引用”的例子吗?谢谢
▼优质解答
答案和解析
value_type不是一种类型,而是泛指C++模板使用的所有类型.譬如你用的list,就是一个模板;在list里面,value_type就是int.
所以在你举的这个例子里面,list::reference事实上就是一个int的引用,而front()返回的也是一个int的引用.这里并没有出现“引用类型的引用”.