泛型编程思想、模板思想

本文介绍了泛型编程思想,强调它与C++模板和STL的关系,指出STL是泛型编程的实现,旨在提高代码复用性。STL与C++标准库紧密相关,占据其大部分内容。文章还详细阐述了STL的六大组件:容器、算法、迭代器、仿函数、配接器和配置器,以及它们之间的交互关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

泛型编程思想

       泛型编程与C++ templates和STL不该混为一谈,模板是泛型编程的基础,而STL是泛型编程思想的实现,是以泛型编程为指导而产生的。STL是泛型编程的第一份重要实现品。可以这样理解,STL是泛型编程思想的产物,是以泛型编程为指导而产生的。因此,在介绍STL之前,先了解泛型编程的思想是必要的。

      《泛型编程与STL》的前言中指出,泛型编程和模型对象编程不同,它并不要求你通过额外的间接层来调用函数;它让你撰写完全一般化并可重复运用的算法,其效率和“针对特定数据型别而设计”的算法旗鼓相当。泛型编程抽离(抽象化)于特定型别和特定数据结构之外,使得以接受尽可能一般化的引数型别。这意味着一个泛型算法实际上具有两部分:(1)用来描述算法步骤的实际指令;(2)正确指定“其引数型别必须满足之性质”的一组需求条件。

  所谓泛型,具有“在多种数据型别上可操作”的含义。

  在“STL之父访谈录”中,根据STL之父关于泛型编程的回答,可以这样看待泛型编程:泛型编程是不依赖于数据结构的特定实现,而只是依赖于该结构的几个基本的语义属性将算法用这种方法从特定实现中抽象出来, 而且效率无损(也就是对于不同的数据类型效率旗鼓相当)的编程方法。

  在《C++ Primer》第16章中,泛型编程的定义为:所谓的泛型编程就是以独立于任何特定类型的方式编写代码。使用泛型程序时,我们需要提供具体程序实例所操作的类型或值。模板是泛型编程的基础。泛型编程与面向对象编程(OOP)一样,都依赖于某种形式的多态性(面向对象编程所依赖的多态性称为运行时多态性,泛型编程所依赖的多态性称为运行时多态性或

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值