请输入您要查询的百科知识:

 

词条 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算法,而且能高效运行.

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/27 2:42:48