词条 | 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条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。