本文涉及QT中的容器對象系列
一容器
QVector類似stl中的vector插入尾部數據速度很快
基本例子如下:
QVector<double> vect(3);
vect[0] = 1.0;
vect[1] = 0.540302;
vect[2] = -0.416147;
這樣也可以
QVector<double> vect;
vect.append(1.0);
vect.append(0.540302);
vect.append(-0.416147);
另外也可以通過流
vect << 1.0 << 0.540302 << -0.416147;
2.QLinkedList沒有提供[]操縱
隨機訪問速度很慢
3.QList<T>序列容器是一種數組鏈表它具有前2者的大部分操作支持隨機訪問
在容器頭部尾部插入數據很迅速
4.QStringList是QList<QString>的子類提供以下操作
排序,過濾,正則表達式處理等
5.QStack<T> 提供push,pop,top等操作
6.Queue<T> QT的隊列模板
7.QMap<T,V>
基本操作如下:
QMap<QString, int> map;
map.insert("eins", 1);
map.insert("sieben", 7);
map.insert("dreiundzwanzig", 23);
當然也可以這樣插入數據
map["eins"] = 1;
map["sieben"] = 7;
map["dreiundzwanzig"] = 23;
但是這樣做有一個問題那就是會生成空值
為了不出現這樣的結果可以使用成員函數value()來代替[]來獲取數據,如果對于鍵不存在則返回默認的對象值
8.QHash<T,V> 使用散列存儲鍵值對
二通用算法
需要說明的是QT中的容器是stl風格的,這意味著可以使用Stl中的算法。
當然在QT庫中QtAlgorithm文件包含了基本的算法模板
主要的函數有
qFind-查找給定元素在容器中的位置類似std::find
qBinaryFind - 類似qFind 需要查找元素有序排列
qFill-類似std::fill 使用給定元素填充容器
qCopy,qSort..
qDeleteAll-函數對容器中的每個元素做刪除處理
基本的容器和算法就這么多了
其實熟悉stl的話學習這個上手很快的