C++迈向精通:STL-iterator_traits迭代器类型萃取解析

STL-iterator_traits迭代器类型萃取解析

源码

在阅读STL源码的时候遇到了这样的一行代码:

1
通过ctags跳转到对应的定义区域:

2下面还有两个特化版本:

3
根据英文释义,发现模板中需要传入的是一个迭代器类型,在上面找到源码:

4
可以发现,当我们调用C++中的 distance 操作时,通过类型萃取,最终迭代器的类型都会被转化为下面的五种类型:

_Category
_Tp
_distance
_Pointer
_Reference

这五个名称。

这样做的好处:在C++中有两种迭代器类型,一种是迭代器对象,一种是C语言形式的指针,通过迭代器萃取,我们可以统一迭代器的类型使用方式。

以上就是 iterator_traits 解析的详细内容,欢迎评论区提问或者指正。

:wq 拜~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若亦_Royi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值