From d3f3e1218c07cad7f69eebe9b011bededb45bfa5 Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 6 Nov 2014 09:19:29 +0100 Subject: [PATCH] Add a inline QVector::append(const QVector &) overload This is present in QList already and its lack is a nuisance when switching from QList based code to QVector (which makes sense e.g. if the item size exceeds sizeof(void*)) Also, albeit operator+=() and operator<<() exist, some people simply prefer functions with real function names. [ChangeLog][QtCore][QVector] Added QVector::append(const QVector &) overload Change-Id: I9aae8223b086765625f2f3071fab5da0780f8a43 Reviewed-by: Liang Qi Reviewed-by: Olivier Goffart --- src/corelib/tools/qvector.cpp | 12 ++++++++++++ src/corelib/tools/qvector.h | 1 + tests/auto/corelib/tools/qvector/tst_qvector.cpp | 12 ++++++++++++ 3 files changed, 25 insertions(+) diff --git a/src/corelib/tools/qvector.cpp b/src/corelib/tools/qvector.cpp index 99e1db1cab..50c90ad746 100644 --- a/src/corelib/tools/qvector.cpp +++ b/src/corelib/tools/qvector.cpp @@ -463,6 +463,18 @@ \sa operator<<(), prepend(), insert() */ +/*! \fn void QVector::append(const QVector &value) + + \overload + + \since 5.5 + + Appends the items of the \a value vector to this vector. + + \sa operator<<(), operator+=() +*/ + + /*! \fn void QVector::prepend(const T &value) Inserts \a value at the beginning of the vector. diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h index 9c8d9d4cf8..c00bd07a72 100644 --- a/src/corelib/tools/qvector.h +++ b/src/corelib/tools/qvector.h @@ -128,6 +128,7 @@ public: T &operator[](int i); const T &operator[](int i) const; void append(const T &t); + inline void append(const QVector &l) { *this += l; } void prepend(const T &t); void insert(int i, const T &t); void insert(int i, int n, const T &t); diff --git a/tests/auto/corelib/tools/qvector/tst_qvector.cpp b/tests/auto/corelib/tools/qvector/tst_qvector.cpp index 9a79d48472..c9e8a5f657 100644 --- a/tests/auto/corelib/tools/qvector/tst_qvector.cpp +++ b/tests/auto/corelib/tools/qvector/tst_qvector.cpp @@ -575,6 +575,18 @@ void tst_QVector::append() const QCOMPARE(v.last(), SimpleValue::at(0)); } #endif + { + QVector v; + v << 1 << 2 << 3; + QVector x; + x << 4 << 5 << 6; + v.append(x); + + QVector combined; + combined << 1 << 2 << 3 << 4 << 5 << 6; + + QCOMPARE(v, combined); + } } void tst_QVector::appendInt() const