<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