首页 > 代码库 > 数组为何这么有用?
数组为何这么有用?
Lisp只用原子和表就构建了整个世界,其实表和数组是等价的(不完全)。JS的关联数组是红黑树,关联数组并不是C数组的超集,因为C数组可以当成一片连续内存使用。也许有用的不是数组,而是运算符[],C++只用重载[]就实现了数组。[]只是一个函数调用而已,一种函数调用的简写形式。这种简写或者说语法糖非常重要,因为它让代码的可读性更好。[]是一个运算符重载,即a[1]会变换为标准的函数调用operator[](a,1)。再看看其他的运算符,1+2变换为operator+(1,2)。两者的共性是变换,变换就是一种宏。我很早就意识到C++的模板其实是一种宏(这点在我的代码里也可以看出),也就是说宏是模板的超集。现在居然发现运算符重载也是一种宏!我一直以为模板和运算符重载才是C++的精髓,它们构建了整个C++世界。我错了,宏才是C++的根本。难道宏就是世界的终极原子?至少C++的if、for目前还不是宏,我试试能不能把它们变成宏。
数组为何这么有用?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。