summaryrefslogtreecommitdiffstats
path: root/src/corelib/doc/src
diff options
context:
space:
mode:
authorOle-Morten Duesund <olemd@odinprosjekt.no>2020-12-07 15:47:28 +0100
committerOle-Morten Duesund <olemd@odinprosjekt.no>2020-12-17 09:57:53 +0100
commit8183086513ae439220ae1facb1e93fc23b9a116b (patch)
tree6b81af4c33b247cacd0ac9e4a83478271e7d968a /src/corelib/doc/src
parent970e54c63d487ff5a334b8037ce0890fceb24e0f (diff)
Add sections about std containers and algorithms
Add section comparing Qt containers and std containers. Add snippets showing use of std algorithms with Qt containers. Task-number: QTBUG-86584 Pick-to: 6.0 Change-Id: I1133a5214a5acd086c37658ca11ab205a19a489b Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Diffstat (limited to 'src/corelib/doc/src')
-rw-r--r--src/corelib/doc/src/containers.qdoc51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/corelib/doc/src/containers.qdoc b/src/corelib/doc/src/containers.qdoc
index c5b70c2675..5d4b9a2215 100644
--- a/src/corelib/doc/src/containers.qdoc
+++ b/src/corelib/doc/src/containers.qdoc
@@ -379,6 +379,57 @@
\note The alternative macros Q_FOREACH and Q_FOREVER remain defined
regardless.
+ \section1 Qt containers compared with std containers
+
+ \table
+ \header \li Qt container \li Closest std container
+
+ \row \li \l{QList}<T>
+ \li Similar to std::vector<T>
+
+ \l{QList} and \l{QVector} were unified in Qt 6. Both
+ use the datamodel from QVector. QVector is now an alias to QList.
+
+ This means that QList is not implemented as a linked list, so if
+ you need constant time insert, delete, append or prepend,
+ consider \c std::list<T>. See \l{QList} for details.
+
+ \row \li \l{QVarLengthArray}<T, Prealloc>
+ \li Resembles a mix of std::array<T> and std::vector<T>.
+
+ For performance reasons, QVarLengthArray lives on the stack unless
+ resized. Resizing it automatically causes it to use the heap instead.
+
+ \row \li \l{QStack}<T>
+ \li Similar to std::stack<T>, inherits from \l{QList}.
+
+ \row \li \l{QQueue}<T>
+ \li Similar to std::queue<T>, inherits from \l{QList}.
+
+ \row \li \l{QSet}<T>
+ \li Similar to std::set<T>. Internally, \l{QSet} is implemented with a
+ \l{QHash}.
+
+ \row \li \l{QMap}<Key, T>
+ \li Similar to std::map<T>.
+
+ \row \li \l{QMultiMap}<Key, T>
+ \li Similar to std::multimap<T>.
+
+ \row \li \l{QHash}<Key, T>
+ \li Most similar to std::map<T>.
+
+ \row \li \l{QMultiHash}<Key, T>
+ \li Most similar to std::multimap<T>.
+
+ \endtable
+
+ \section1 Qt containers and std algorithms
+
+ You can used Qt containers with functions from \c{#include <algorithm>}.
+
+ \snippet code/doc_src_containers.cpp 26
+
\section1 Other Container-Like Classes
Qt includes other template classes that resemble containers in