源地址:https://blog.csdn.net/qq_33266987/article/details/53333373
Qlist、QVector 與 list、vector似乎不太類似;
list插入刪除很快,vector查詢很快。
但QList 是基於index標簽存儲它的元素項在內存(雖然內存不連續,這點與list 是一樣的),但可以使用 [ ]運算符, 也可以使用.at()操作。
QList和QVector等容器的區別:
1、大多數情況下可以用QList。像prepend()和insert()這種操作,通常QList比QVector快的多。這是因為QList是基於index標簽存儲它的元素項在內存中,比那種依賴iterator迭代的更快捷。而且你的代碼也更少。
2、如果你需要一個真正的連接着的list,且需要保證一個固定插入耗時。那就用迭代器,而不是標簽。使用QLinkedList();
3、如果你需要開辟連續的內存空間存儲,或者你的元素遠比一個指針大,這時你需要避免個別插入操作,出現堆棧溢出,這時候用QVector
4、如果你需要一個低層的可變數量大小的數組,用QVarLengthArray就夠了。他可以預先在棧中分配已知長度大小的數組,如果超過這個長度,會在堆中繼續存儲。默認大小256