<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