From b3c52e82245f46af9ce633a6de1e4e41fb9f3f6d Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Sun, 10 Feb 2019 18:43:05 +0100 Subject: Simplify {to,from}Std{List,Vector} Use the newly-added range constructors. Change-Id: I7f1d2699d88656fb7dddd11a9d781d810d45b0b4 Reviewed-by: Marc Mutz --- src/corelib/tools/qlist.h | 15 ++++----------- src/corelib/tools/qvector.h | 2 +- 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/corelib/tools/qlist.h b/src/corelib/tools/qlist.h index 04c1f12f5f..70bbc11ad2 100644 --- a/src/corelib/tools/qlist.h +++ b/src/corelib/tools/qlist.h @@ -414,10 +414,10 @@ public: Q_DECL_DEPRECATED_X("Use QList(list.begin(), list.end()) instead.") static inline QList fromStdList(const std::list &list) - { QList tmp; std::copy(list.begin(), list.end(), std::back_inserter(tmp)); return tmp; } + { return QList(list.begin(), list.end()); } Q_DECL_DEPRECATED_X("Use std::list(list.begin(), list.end()) instead.") inline std::list toStdList() const - { std::list tmp; std::copy(constBegin(), constEnd(), std::back_inserter(tmp)); return tmp; } + { return std::list(begin(), end()); } #endif private: @@ -1105,10 +1105,7 @@ inline int QList::count_impl(const T &t, QListData::ArrayCompatibleLayout) co template Q_OUTOFLINE_TEMPLATE QVector QList::toVector() const { - QVector result(size()); - for (int i = 0; i < size(); ++i) - result[i] = at(i); - return result; + return QVector(begin(), end()); } template @@ -1120,11 +1117,7 @@ QList QList::fromVector(const QVector &vector) template Q_OUTOFLINE_TEMPLATE QList QVector::toList() const { - QList result; - result.reserve(size()); - for (int i = 0; i < size(); ++i) - result.append(at(i)); - return result; + return QList(begin(), end()); } template diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h index c223e4efa0..5d68a283bd 100644 --- a/src/corelib/tools/qvector.h +++ b/src/corelib/tools/qvector.h @@ -303,7 +303,7 @@ public: #if QT_VERSION < QT_VERSION_CHECK(6,0,0) Q_DECL_DEPRECATED_X("Use QVector(vector.begin(), vector.end()) instead.") static inline QVector fromStdVector(const std::vector &vector) - { QVector tmp; tmp.reserve(int(vector.size())); std::copy(vector.begin(), vector.end(), std::back_inserter(tmp)); return tmp; } + { return QVector(vector.begin(), vector.end()); } Q_DECL_DEPRECATED_X("Use std::vector(vector.begin(), vector.end()) instead.") inline std::vector toStdVector() const { return std::vector(d->begin(), d->end()); } -- cgit v1.2.3