在开始前我有一些资料,是我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「c++的资料从专业入门到高级教程+工具包」,点个关注,全部无偿共享给大家!!!
在评论区回复“888”之后私信回复“888”,即可拿走。
这其实和每种语言的定位有关,c++定位偏底层,Java,Python都定位在更高的抽象层级中。就像很多行业有上下游一样,不可能所有人都要做手机,却没人做芯片。
c++标准库所缺失的其实都可以由第三方库来弥补,c++标准库提供的是底层的,粒度较小的API,比如它没有图形库,你可以使用qt,MFC,等等实现,Java有图形库swing,awt。不是照样没人用。。同样如果c++标准库里面东西多了,你可能也会吐槽,标准库实现的好low啊,然后拒绝使用。高层抽象的库及其API很多时候优劣更难以鉴定,它可能不仅是从效率方面考虑,也可能从软件工程的角度来考虑,见仁见智,它们不像实现一个排序算法那样,一就是一,二就是二,快就行。
同样的情况你可以看看c语言,他定位更为底层(是底层而不是低级),他的库比c++还欠缺很多,然而依然有很多开源项目在用,比如nginx。你可以这样想想,你一台机器上,可能放置多个Java web的网站,但是你只需要部署一个nginx。这就是定位不同。
你每个网站代码肯定是不同的,而nginx安装完基本上不会变了。C/C++语言的应用场景通常定位在基础设施。就好比是高速公路,而Java、Python这种基于更高层次抽象的语言定位在基础设施之上的各类应用,就好比是跑在路上的汽车。汽车每年都要生产很多,但是高速公路不会频繁地新增,但公路又是不可或缺的。