您的位置:首页 > 编程语言

STL中的traits编程技巧

2014-08-29 14:55 323 查看
STL中的traits编程技巧,初次接触,觉得真心不好理解。

下面是一篇很好的博客:http://blog.csdn.net/shudou/article/details/10270971

总的来说,在STL中是由容器(container)来负责设计适当的迭代器(iterator),由迭代器(iterator)来负责设计适当的迭代器属性。正因为这一点才使得容器和算法可以完全分离开来,通过迭代器提供的接口来访问容器的内部元素。

STL的中心思想在于:将容器(container)与算法(algorithm)分开,彼此独立设计,最后再以一粘合剂(迭代器,iterator)将他们撮合在一起。容器与算法的特化,从技术上比不难,C++的类模版和函数模版可以分别达到目标,真正设计出两者之间粘合的迭代器,才是关键。

traits编程技巧[注1]大量运用于STL的实现品中,它利用“内嵌型别”的编程技巧[注2]与C++编译器的template参数推导功能,增强C++未能提供的关于型别方面的能力,弥补了C++不是强型别的遗憾。

[注1]算法利用traits编程技巧获得迭代器的属性。
[注2]具体的来说,traits就是通过定义一些结构体或类,并利用模板类特化和偏特化的能力,给类型赋予一些特性,这些特性根据类型的不同而异。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: