五千年(敝帚自珍)

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

共:💬71 🌺370
全看分页树展 · 主题 跟帖
家园 不完全可比

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

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

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

family + =baby

house += room

sun += planet

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

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

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

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

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

通宝推:PCB,
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河