1. STL的vector最開(kāi)始分配的空間是1個(gè),而QVector開(kāi)始分配的空間為4個(gè)(可見(jiàn)QT在空間分配上的優(yōu)化);
2. STL的vector發(fā)生超過(guò)容量本身的訪問(wèn),并不一定失敗(因?yàn)閮?nèi)存可能足夠大并存在),而QVector則發(fā)生了斷言錯(cuò)誤。而顯然,第二種處理方式會(huì)更好。而第一種可能會(huì)造成莫名其妙的錯(cuò)誤,尤其是當(dāng)工程師忘記vector的范圍,而vector本身并不出錯(cuò)的時(shí)候。
顯然,QT的容器基于STL進(jìn)行了升級(jí)。如果有類似于QT的容器之類的容器,優(yōu)先選擇更好的容器;
而如果使用STL,要知道STL這種特點(diǎn),并避免這類事情發(fā)生。