講師回答 / 陳雷
可以這么簡單的理解:1、對于key是數(shù)字的,就不用涉及到hash運算,此時使用的是packed array; 當然如果key的值較大,或者間隔較大,還是會退化成hash array。? packed array 能夠節(jié)省索引部分占用的內存,是一個性能上的優(yōu)化;2、對于key是非數(shù)字的,必須用hash算法進行計算出來它所在bucket的位置,那么索引數(shù)組是必不可少的,只能是hash array。這是底層的實現(xiàn),對于我們寫php代碼,需要關注的點是對于業(yè)務中的大數(shù)組,有沒有可能設計一些算法,讓它滿足packe...
2018-12-19
最新回答 / weibo_雷神傷感_0
結構體(使用關鍵字 struct),是C語言里的東西,C語言不是面向對象的。C語言發(fā)明時候,還沒有面向對象概念。后來出現(xiàn)語言C++,Java,C#等為標準,你可以把結構體和類(使用關鍵字class)對比起來。不難發(fā)現(xiàn),結構體是公有的,數(shù)據(jù)和函數(shù)都可以被結構體外函數(shù)使用。在現(xiàn)在軟件工程理論里,這被認為是不規(guī)范。所以后期語言都有class,默認私用。
2018-12-17