首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

《泛型编程与stl》中一段关于iterator_traits的话看不懂解决方案

2012-05-16 
《泛型编程与stl》中一段关于iterator_traits的话看不懂自己在看《泛型编程与stl》时有一段始终无法理解的话,

《泛型编程与stl》中一段关于iterator_traits的话看不懂
自己在看《泛型编程与stl》时有一段始终无法理解的话,加粗那段什么意思?跪求大家指教。

当你定义新的iterator class时,你必须确定你的class支持iterator_traits。最简单的方法便是,总是在你的class中以嵌套类型定义value_type。这么一来,你就不需明白(explicitly)提到iterator_traits,而定义于程序库内的iterator_traits class仍能正确工作。如果因为某种原因,使你无法或不方便使用现有的iterator_traits,你可以针对你的class,将iterator_traits特化

加粗那段到底是什么意思?
怎么会无法使用iterator_traits?即便库没有提供iterator_traits,自己手写一个,那也要在定义的iterator_traits类内明确嵌套类型定义value_type

[解决办法]
搜 STL萃取器 .C++的对象不能提取出对象的特性.
然后STL里面用了traits编程技巧来实现这个东西.
[解决办法]
打个比方。假设一个已经存在的类T,类似指针的功能。由于这个T不是标准的iterator,如果你想把这个类当作iterator用于某些算法的时,就需要为这个类定义iterator_traits。
算法可以通过这个自定义的iterator_traits,获取相关的信息,例如*T是什么类型,T-T是什么类型,等等

热点排行