diff options
author | Ole-Morten Duesund <olemd@odinprosjekt.no> | 2020-12-07 15:47:28 +0100 |
---|---|---|
committer | Ole-Morten Duesund <olemd@odinprosjekt.no> | 2020-12-17 09:57:53 +0100 |
commit | 8183086513ae439220ae1facb1e93fc23b9a116b (patch) | |
tree | 6b81af4c33b247cacd0ac9e4a83478271e7d968a /src/corelib/doc/src | |
parent | 970e54c63d487ff5a334b8037ce0890fceb24e0f (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.qdoc | 51 |
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 |