请问什么叫差距类型(Dist)呢?

hpho 2003-06-05 08:05:52
template<class C, // 迭代器类型
class T, // 元素值类型
class Dist = ptrdiff_t, // 差距类型??
class Pt = T*, // 元素值的指针类型
class Rt = T&>struct iterator // 元素值的引用类型

这里的差距类型是指什么?
在什么时候才会用到?


...全文
128 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
短歌如风 2003-06-06
  • 打赏
  • 举报
回复
举个例子:
当你把元素实际存放在外存中,并在使用时(当Pt::operator *() 被调用时)才读入内存),这时由于外存的容量比较大(可以超过4G),再用ptrdiff_t来表示指针差距未免有些力不从心,这时就需要用一个封装了64位整数(或更长)的类来表示指针之间的差距。
短歌如风 2003-06-06
  • 打赏
  • 举报
回复
“差距类型”就是两个“指针类型”的变量相减的结果的类型。当“指针类型”就是C中的指针(T*)时,“差距类型”一般都定义为预定义的类型ptrdiff_t,它实际上就是int类型。但如果“指针类型”是一个指针类(smart_ptr)时,这时“差距类型”不再适合使用int表示,这时就需要给出自己的“差距类型”。

24,855

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧