STL源码剖析---移动advance和距离distance

一、 激活重载函数 

参数列表光有类型,而没有变量名——因为变量压根儿就不会在函数内用到。为了重载而存在,主要和第五部分结合起来看。

#include<cstddef>		//为了引入 typedef int ptrdiff_t

struct input_iterator_tag{ };	//只读标签
struct output_iterator_tag{ };	//只写标签
struct forward_iterator_tag : public input_iterator_tag{ };	//可读写标签
struct bidirectional_iterator_tag : public forward_iterator_tag{ };	//双向标签
struct random_access_iterator_tag : public bidirectional_iterator_tag{ };	//随机标签

 二、 迭代器设计

为了本迭代器能够被子类继承,实现为模板。

//迭代器
template<class Category, class T, class Distance = ptrdiff_t, 
	class Pointer = T*, class Reference = T&>
struct iterator{
	typedef Category iterator_category;
	typedef T value_type;
	typedef Distance 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值