主题:随便说说c++的这次吵架 -- 透明
stl的算法都是基础级的,算法教科书的基本内容,数据结构和对数据结构的操作。几乎所有通用语言都提供。
但在实现上,提供了一个漂亮的结构和算法语义的垂直正交。
比如加法就是加法,跟你是什么数据类型无关,而且不仅限于基本整数,实数这种数值类型,还包括抽象意义,比如,可以
family + =baby
house += room
sun += planet
一方面这种扩展是无限,只要定义好自己的语义,这个代码的写法都是一样的。
另一方面,你没有用到就不会有代码编译到最终文件。就算你定义了太阳和行星关系的语意,如果你写的是房地产软件,前者的软件代码,编译器会扔掉。
所以stl的晦涩体现这些问题的解决。而不是算法本身。stl是独一无二的,这是因为c++的template是独一无二的编译期多态。
Java/.net是运行期模拟其行为,徒有其表。这是语言的基础区别,苹果树上接不出梨。
微软曾经实现了c++编译到.net, 以为他能做到,所以搞stl.net。他们学到了很重要一课。后来反过来搞.net native.后来...微软已经是印度人公司了,所以...
- 相关回复 上下关系8
🙂不是一回事哦 3 敲门 字389 2019-01-07 13:00:33
🙂Joshua Bloch写的是打油诗 283号出口 字6 2019-01-07 15:48:58
🙂还是一样的标题:不是一回事 1 敲门 字112 2019-01-08 06:53:24
🙂不完全可比
🙂C++从入门到放弃 1 shinji 字118 2019-01-07 14:08:30
😜不明觉厉,师母已呆 宏寺 字0 2019-01-04 11:12:02
🙂现在c++太太太复杂了 2 可梦之 字217 2019-01-04 04:10:48
🙂简化有两种 4 透明 字1224 2019-01-05 00:34:38