diff options
Diffstat (limited to 'src/concurrent')
-rw-r--r-- | src/concurrent/doc/qtconcurrent.qdocconf | 3 | ||||
-rw-r--r-- | src/concurrent/doc/src/qtconcurrent-module.qdoc | 1 | ||||
-rw-r--r-- | src/concurrent/qtconcurrentmedian.h | 12 |
3 files changed, 11 insertions, 5 deletions
diff --git a/src/concurrent/doc/qtconcurrent.qdocconf b/src/concurrent/doc/qtconcurrent.qdocconf index 3d5e9de5e0..7fa437c17f 100644 --- a/src/concurrent/doc/qtconcurrent.qdocconf +++ b/src/concurrent/doc/qtconcurrent.qdocconf @@ -40,3 +40,6 @@ exampledirs += ../../../examples/qtconcurrent \ excludedirs += ../../../examples/widgets/doc imagedirs += images + +navigation.landingpage = "Qt Concurrent" +navigation.cppclassespage = "Qt Concurrent C++ Classes" diff --git a/src/concurrent/doc/src/qtconcurrent-module.qdoc b/src/concurrent/doc/src/qtconcurrent-module.qdoc index b8d89cbde3..37298017c7 100644 --- a/src/concurrent/doc/src/qtconcurrent-module.qdoc +++ b/src/concurrent/doc/src/qtconcurrent-module.qdoc @@ -31,6 +31,7 @@ \brief The Qt Concurrent module contains functionality to support concurrent execution of program code \ingroup modules + \qtvariable concurrent The Qt Concurrent module extends the basic threading support found in \l{Qt Core} module and simplifies the development of code that can be executed in parallel on all available CPU cores. diff --git a/src/concurrent/qtconcurrentmedian.h b/src/concurrent/qtconcurrentmedian.h index f93dc1d60b..29342e6402 100644 --- a/src/concurrent/qtconcurrentmedian.h +++ b/src/concurrent/qtconcurrentmedian.h @@ -47,7 +47,8 @@ #ifndef QT_NO_CONCURRENT #include <QtCore/qvector.h> -#include <QtCore/qalgorithms.h> + +#include <algorithm> QT_BEGIN_NAMESPACE @@ -89,7 +90,7 @@ public: dirty = true; } - values[currentIndex] = value; + values[currentIndex] = qMove(value); } bool isMedianValid() const @@ -101,9 +102,10 @@ public: { if (dirty) { dirty = false; - QVector<T> sorted = values; - qSort(sorted); - currentMedian = sorted.at(bufferSize / 2); + QVector<T> copy = values; + typename QVector<T>::iterator begin = copy.begin(), mid = copy.begin() + bufferSize/2, end = copy.end(); + std::nth_element(begin, mid, end); + currentMedian = qMove(*mid); } return currentMedian; } |