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

你可能感兴趣的:(算法)