QT的通用算法

<QtAlgorithms>提供了一系列通用的模板函數,用於實現容器上的基本算法。注意:只是針對容器進行操作。

1、          qFind()函數在容器中查找一個特定值。它包括兩個參數,起始位置、終止位置和查找的字符串三個參數,如果被查找的元素存在,函數返回一個遍歷器,否則則返回終止位置的遍歷器。

例子:

QStringList list;

list << "a"  << "b" << "c" << "d";

QStringList::iterator  i = qFind(list.begin(), list.end(), "c");

QStringList::iterator j  = qFind(list.begin(), list.end(), "e");

其中i=list.begin() +2,j=list.end()。

2、          qBinaryFind()是二分查找算法,它只適用於查找排序之後的集合,而前面的qFind()是線性查找。

3、  qFill()用特定的值填充容器。

例子:

QList<int> list(5);

qFill(list.begin(),   list.end(), 10);

4、          qCopy()算法可以實現將一個容器中的元素複製到另一個容器。

例子:

QVector<int> vect(list.count());

qCopy(list.begin(),  list.end(), vect.begin());

 

5、          qSort()實現了容器元素的遞增排序,如果需要按照遞減排序,需要將 qGreater<T>()當作第三個參數傳給qSort()函數。

例子:

qSort(list.begin(),  list.end(), qGreater<int>())

6、          qStableSort()實現穩定排序。即在排序過程中,如果有兩個元素相等,那麼在排序結果中這兩個元素的先後順序同排序前一致。

7、          qDeleteAll()函數將對容器中存儲的所有指針進行delete操作。這個函數僅在容器元素是指針的情形下才適用。這些指針依然被存儲在容器中,需要調用clear()函數來避免這些指針成爲野指針。

例子:

qDeleteAll(list);

list.clear();

8、          qMin()和qMax()則返回兩個值的最大值和最小值。

9、          qAbs()返回參數的絕對值。


轉載自:http://blog.csdn.net/goodlixueyong/article/details/5941924

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章