Qt的容器類
阿新 • • 發佈:2021-01-29
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
順序容器類有QList、QLinkedList、QVector、QStack和QQueue。
關聯容器類有QMap、QMultiMap、QHash、QMultiHash和QSet。