主题:随便说说c++的这次吵架 -- tom

大河奔流 导读 复 56 阅 26898

全看 分页 树展 一览 主题

2019-01-05 22:38:56
4386485 复 4386426
tom
tom`20476`/bbsIMG/face/0000.gif`70`4473`1239`27239`从四品上:太中大夫|宣威将军`2007-11-05 22:51:37`
不完全可比 10

stl的算法都是基础级的,算法教科书的基本内容,数据结构和对数据结构的操作。几乎所有通用语言都提供。

但在实现上,提供了一个漂亮的结构和算法语义的垂直正交。

比如加法就是加法,跟你是什么数据类型无关,而且不仅限于基本整数,实数这种数值类型,还包括抽象意义,比如,可以

family + =baby

house += room

sun += planet

一方面这种扩展是无限,只要定义好自己的语义,这个代码的写法都是一样的。

另一方面,你没有用到就不会有代码编译到最终文件。就算你定义了太阳和行星关系的语意,如果你写的是房地产软件,前者的软件代码,编译器会扔掉。

所以stl的晦涩体现这些问题的解决。而不是算法本身。stl是独一无二的,这是因为c++的template是独一无二的编译期多态。

Java/.net是运行期模拟其行为,徒有其表。这是语言的基础区别,苹果树上接不出梨。

微软曾经实现了c++编译到.net, 以为他能做到,所以搞stl.net。他们学到了很重要一课。后来反过来搞.net native.后来...微软已经是印度人公司了,所以...


  • 本帖 1 回复
通宝推:PCB,
2019-01-05 22:38:56

全看 分页 树展 一览 主题