Generic Programming 百科内容来自于: 百度百科

类属编程(generic programming)
generic是构成库的另一种方式, 这与传统的oop是不同的.这类程序库一般由类属组件和类属算法组成,组件和算法通过迭代器组装起来,组件则对迭代器提供一定的封装.这种程序库的优点在于能够提供比传统程序库更灵活的组装方式,而不损失效率.
STL,boost,ACE,ATL等库都是建构在generic的概念之上.STL对迭代器进行了分类,分类是从支持的功能上的,不同的类属算法对迭代器有不同的要求.下面对迭代器的种类做一下归纳。
1. Input Iterator(输入迭代器) : 单向读取和遍历.
2. Output Iterator(输出迭代器):单向写入和遍历.
3. Forward Iterator(前向迭代器):单向,读,写,支持多路遍历
4. Bidirectional Iterator(双向迭代器): 双向,读,写,支持多路遍历
5. RandomAccessIterator(随机访问迭代器):随机访问,读,写,支持多路遍历
强化(Refinement) 五种迭代器有一种归属关系.1<-2<-3<-4<-5
list容器提供了BidirectionalIterator,因此可以用于find算法(该算法需要InputIterator)
但sort算法(需要RandomAccessIterator),因此下面的代码不能通过编译.
list<int> lst;
//... code insert value in lst
sort (lst.begin(), lst.end() ) ; // error!!!
我们知道deque提供了RandomAccessIterator,因此他却可以使用sort算法,而且能高效运行.
$firstVoiceSent
- 来自原声例句
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定