通用工具Utilities(二)----min max swap offsetof
来源:互联网 发布:阿里云app 什么区别 编辑:程序博客网 时间:2024/05/22 05:19
template <class T>inline const T& min(const T& a, const T& b){return b < a ? b: a;}template <class T,class Compare>inline const T& min(const T& a, const T& b, Compare comp){return comp(b,a)? b: a;}template <class T>inline const T& max(const T& a, const T& b){return a < b ? b: a;}template <class T,class Compare>inline const T& max(const T& a, const T& b, Compare comp){return comp(a,b)? b: a;}template<class T>inline void swap(T& a, T& b){T tmp(a);a = b;b = tmp;}
offsetof:表示一个成员在struct或union中的偏移量,定义于头文件<cstddef>中
实现代码:
#define offsetof(s, m) (size_t)&(((s *)0)->m)
s是一个结构名,它有一个名为m的成员(s和m 是宏offsetof的形参),它实际是返回结构s的成员m的偏移地址。
(s *)0 是骗编译器说有一个指向类(或结构)s的指针,其地址值0 。
&((s *)0)->m 是要取得类s中成员变量m的地址。 因基址为0,这时m的地址当然就是m在s中的偏移。
最后转换size_t 型,即unsigned int。
- 通用工具Utilities(二)----min max swap offsetof
- max()、min()、swap()简单介绍
- C++标准库笔记:算法--min/max/swap/iter_swap
- Min/max:
- Min-Max
- max min
- max min
- utilities(C/C++)(二)
- JAVA通用工具类(二)
- vc中对标准库std::min,max,swap的支持问题
- std::min, std::max, std::swap, std::rel_ops的简单使用
- 产生(min max)的随机数
- 获取随机数(max与min之间)
- std::max与max宏 混淆解决办法(min同样)
- 通用工具Utilities(一):STL中auto_ptr的实现以及auto_ptr_ref的理解
- 通用工具Utilities(三)----定义于utility中的pair和辅助性的比较操作符
- mysql-utilities工具体验
- mysql-utilities工具体验
- Eclipse使用技巧
- 自动生成Xpath小工具
- SQL SERVER数据库备份和恢复函数
- 函数式宏中可变参数中的 ## 运算符
- 选择那件让你感到痛苦的事情,你就能超越自我
- 通用工具Utilities(二)----min max swap offsetof
- 使用异步 I/O 提高程序性能
- asp.net服务器控件实现选项卡的一种方式
- was LocalTransaction
- 程序员面试宝典笔记5--字符串
- xpath知识点
- MSSQL2000中sa不能登录,但windows难证可以登录
- 取向性完全不同 骐达英朗底盘对比解析
- 程序猿装B指南