前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++stl库_c++库

C++stl库_c++库

作者头像
全栈程序员站长
发布2022-11-08 11:24:18
4550
发布2022-11-08 11:24:18
举报
文章被收录于专栏:全栈程序员必看

熟练使用STL标准库是每个C++程序员的必备技能。

C++ 标准程序库发展至今,几乎所有内容都被设计为了模板的形式,STL 已经成为 C++ 程序库的重要组成部分。可以这么说,如果 C++ 不支持 STL 标准模板库,就无法使用程序库。

在大多数人看来,计算机既神秘有能干,但在程序员的眼中,计算机又蠢又笨,唯一的优点就是运算速度比人快,不给指令什么都干不了,就是给指令,计算机也不能灵活运用。

比如说,在 C++ 中,同样一个加法,不同的数据类型,要给出不同的运行代码:

代码语言:javascript
复制
#include<iostream>
using namespace std;
//处理整形之间的加法
int addInt(int m, int n) { 
   
    return m + n;
}
//处理浮点类型值之间的加法
double addDouble(double i, double j) { 
   
    return i + j;
}
//......
int main()
{ 
   
    cout << addInt(1, 2) << endl << addDouble(1.2, 2.1);
    return 0;
}

运行结果为:

代码语言:javascript
复制
3
3.3

像这样,对于每一种数据类型,我们都必须给计算机设计一个单独的函数,实在太繁琐了。由此可以感受到,计算机并不具备人类的基本思维,处理问题不灵活。

为了让计算机不断接近人类的认知能力,科学家们想了很多办法,比如使用面向对象开发技术,通过类的封装和函数重载,可以部分解决上面的问题:

代码语言:javascript
复制
#include<iostream>
using namespace std;
class calc { 

public:
//处理整形之间的加法
int add(int m, int n) { 

return m + n;
}
//处理浮点类型值之间的加法
double add(double i, double j) { 

return i + j;
}
//......
};
int main()
{ 

calc a;
cout << a.add(1, 2) << endl << a.add(1.2, 2.1);
return 0;
}

运行结果为:

代码语言:javascript
复制
3
3.3

创建这样的类之后,当通过类对象调用 add 方法时,就无需考虑参数的具体数据类型了。但从某种程序上来说,这也仅是让计算机聪明了一点点。

为了让程序更加智能、人性化,经过科学家们持续的努力,C++ 引入了模板这个功能。模板可以认为是针对一个或多个尚未明确的类型而编写的一个个函数,是 C++ 的一个新特性。

通过引入模板,C++ 引申出了泛型编程技术。简单的理解泛型编程,即使用该技术编写的代码,可以支持多种数据类型。也就是说,通过泛型编程,能编写出可重复利用的程序代码,并且其运行效率和针对某特定数据类型而设计的代码相同。由此可见,C++ 很需要泛型这种新的编程模式,可以减轻编程的工作量,增强代码的重用性。

在 C++ 支持模板功能,引入了泛型编程思想的基础上,C++ 程序员们想编写出很多通用的针对不同数据类型的算法,其中 STL 脱颖而出成为 C++ 标准,并被引入 C++ 标准程序库。

STL 是一个具有高度可用性、高效的模板库,该库包含了诸多在计算机科学领域中常用的基础数据结构和算法,掌握了 STL 标准,很多功能就无需自己费心费力的去实现了(不用重复的造轮子),直接拿来用即可。

总的来说,STL 模板库是 C++ 标准程序库的重要组成部分,为 C++ 程序员提供了大量的可扩展的程序框架,高度实现了代码的可重用性,并且它是内置的,不需要额外安装,使用非常方便。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/184142.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月9日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 熟练使用STL标准库是每个C++程序员的必备技能。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档