STL 型别技术
来源:互联网 发布:安卓博德之门2修改数据 编辑:程序博客网 时间:2024/05/01 20:35
STL设计将容器和算法分开,迭代器是两者的胶贴剂,STL 型别技术用于迭代器和算法之间,型别技术的实现是用Traits技法;
template <class Iterator>struct iterator_traits{typedef typename Iterator::iterator_category iterator_category;typedef typename Iterator::value_type value_type;typedef typename Iterator::difference_type difference_type;typedef typename Iterator::pointer pointer;typedef typename Iterator::referece referece;};template <class T>struct iterator_traits<T*>{typedef random_access_iterator_tagiterator_category;typedef T value_type;typedef ptrdiff_t difference_type;typedef T* pointer;typedef T& referece;};template <class T>struct iterator_traits<const T*>{typedef random_access_iterator_tagiterator_category;typedef T value_type;typedef ptrdiff_t difference_type;typedef T*pointer;typedef T&referece;};
Input Iterator : 该类迭代器所指对象,是只读的 read only;
Output Iterator : 只写 write only;
Forward Iterator : 允许写入型算法在此种迭代器所形成的区间上进行读写操作;
Bidirectional Iterator : 可双向移动;
Random Access Iterator :涵盖所有指针算法能力。
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 { };
0 0
- STL 型别技术
- STL源码剖析-型别技术
- STL中的型别
- stl之迭代器相应型别
- 迭代器的型别 《STL 源码剖析》阅读笔记
- 别被技术绑架
- 别被技术绑架
- 别被技术绑架
- 别被技术绑架
- Unity 各级别 技术面试
- STL源码解析之uninitialized_fill_n简单测试-(用到了迭代器萃取和型别萃取)
- stl之再看迭代器 迭代器相应型别之五 iterator_category
- stl之再看迭代器iterator(迭代器相应型别和iterator_traits特性以及traits特性萃取)
- STL迭代器技术
- STL中Straits技术
- STL技术总结
- C++STL技术
- STL 萃取技术
- lsblk查看块设备
- uva562(DP)
- 机器学习学习,笔记及感想1
- 【C#网络编程系列】专题三:自定义web服务器
- 通过/dev/mem只能访问high_memory高端内存以下的内核线性地址空间
- STL 型别技术
- Swift入门教程系列6-闭包
- springmvc为什么要和spring整合
- C语言二维数组
- 黑马程序员:OC学习日记之self
- HDU 4565So Easy! 共轭构造+矩阵快速幂
- Codeforces Round #274 (Div. 2) c Exams
- 【数学:卡特兰数】总结
- eclipse 注释掉代码,取消代码注释