1. 程式人生 > 其它 >Qt的容器類

Qt的容器類

技術標籤:Qtqt

1. 容器類的定義
Qt提供了多個基於模板的容器類,這些容器類可以用於儲存指定型別的資料項,例如常用的字串列表類 QStringlist就是從容器類QList繼承的,實現對字串列表的新增、儲存、刪除等操作。
容器類是基於模板的類,如常用的容器類 QList,T是一個具體的型別,可以是int、float等簡單型別,也可以是QString、 QDate等類,但不能是QObject或任何其子類。T必須是一個可賦值的型別,即T必須提供一個預設的建構函式,一個可複製建構函式和一個賦值運算子。
例如用QList定義一個字串列表的容器,其定義方法是:

QList<QString>
aList; aList.append("Monday"); aList.append("Tuesday"); aList.append("Wednesday"); QString str=aList[0];

2. 容器類的優點
Qt的容器類比標準模板庫(STL)中的容器類更輕巧、安全和易於使用。這些容器類是隱式共享和可重入的,而且它們進行了速度和儲存優化,因此可以減少可執行檔案的大小。此外,它們還是執行緒安全的,也就是說它們作為只讀容器時可被多個執行緒訪問。

3. 容器類的分類
Qt的容器類分為順序容器sequential containers

)和關聯容器associative containers)。
順序容器類QList、QLinkedList、QVector、QStackQQueue
關聯容器類QMap、QMultiMap、QHash、QMultiHashQSet