C++迭代器类模板形参问题 10

//List节点的定义template<classT>struct__list_node{typedefvoid*void_pointer;void_pointernex... // List节点的定义
template <class T>
struct __list_node {
typedef void* void_pointer;
void_pointer next;
void_pointer prev;
T data;
};
// List迭代器的定义
template<class T, class Ref, class Ptr>
struct __list_iterator {
// 这三个typedef是为了简化后面的代码书写
typedef __list_iterator<T, T&, T*> iterator;
typedef __list_iterator<T, const T&, const T*> const_iterator;
typedef __list_iterator<T, Ref, Ptr> self;
...
typedef __list_node<T>* link_type;

...
link_type node;
...
return *this
}
这是list迭代器的stl源码,类本身只有一个成员node;其他都是些函数,谁能解释下上面3个__list_iterator<>里3个参数各是什么意思。
展开
 我来答
solotony
2014-03-10 · TA获得超过599个赞
知道小有建树答主
回答量:700
采纳率:0%
帮助的人:572万
展开全部
template<class T, class Ref, class Ptr>上已经解释了,原始类型,引用,指针,区别只在是否有const.
更多追问追答
追问
typedef __list_iterator与typedef __list_iterator在运行的时候怎么选择的机制啊
追答
这两个会同时存在,不需要选择?
list::const_iterator
list::iterator.

这不是函数的参数,不会进行类型推测
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式