ptrdiff_t学习
2015-10-12 23:13
274 查看
在学习STL源码时遇到了ptrdiff_t
先看下我自己搞得测试ptrdiff_t的代码
输出是 5 和 -10
输出的ptrdiff_t对象是有符号的整数,并且它代表的是两个迭代器(指针)之间的距离。这个距离是内存单元之间的距离并且是有方向的。
我也看了看源码并截取的部分
我的理解是 ptrdiff_t就是long long int 或 long int 型
先看下我自己搞得测试ptrdiff_t的代码
#include<iostream> #include<cstddef> #include<vector> using namespace std; int main() { string s = "hello"; string::iterator sp = s.begin(); string::iterator send = s.end(); ptrdiff_t sl = send - sp ; vector<int> a(10,10); cout << sl << endl;//begin()返回的迭代器和end()返回的迭代器距离5 vector<int>::iterator vp = a.begin(); vector<int>::iterator vend = a.end(); ptrdiff_t vl = vp - vend; cout<< vl <<endl;//begin()返回的迭代器和end()返回的迭代器距离-10 return 0; }
输出是 5 和 -10
输出的ptrdiff_t对象是有符号的整数,并且它代表的是两个迭代器(指针)之间的距离。这个距离是内存单元之间的距离并且是有方向的。
我也看了看源码并截取的部分
#define __PTRDIFF_TYPE__ long long int #else #define __PTRDIFF_TYPE__ long int #endif #endif #ifndef _PTRDIFF_T_DEFINED #define _PTRDIFF_T_DEFINED __MINGW_EXTENSION typedef __PTRDIFF_TYPE__ ptrdiff_t; #endif
我的理解是 ptrdiff_t就是long long int 或 long int 型
相关文章推荐
- Android应用程序打包时,出现错误:"XXX" is not translated in "af" (Afrikaans), "am" (Amharic), "ar" (Arabic).....
- 验证歌德巴赫猜想对2000以内的正偶数成立 及 将一个正整数分解质因数
- Mybatis框架基础学习(四)
- python 小知识点
- css中postion的fixed与absolute区别详解
- Java随机输出验证码包含数字、字母、汉字
- [leetcode] 200 Number of Islands(DFS)
- IOS 异步下载图片
- 算法 随笔
- iOS编程------UIAlertController
- ViewPagerIndicator开源框架简单使用
- c++ primer第五版(中文)习题答案 第十章第四节第一小节-插入迭代器
- Xcode 向6.0以后版本添加iOS开发空白模板
- Absolute Uninstaller是类似于标准的Windows添加/删除卸载工具
- Absolute Uninstaller是类似于标准的Windows添加/删除卸载工具
- lintcode-矩阵的之字型遍历 -185
- c++特殊函数
- gcc编译程序的过程
- iOS中sqlite的基本使用
- C结构体之位域(位段)