diff options
author | Olivier Goffart <ogoffart@trolltech.com> | 2010-03-29 08:34:23 (GMT) |
---|---|---|
committer | Olivier Goffart <ogoffart@trolltech.com> | 2010-03-29 12:05:16 (GMT) |
commit | 809583a34cb69367ecb4218f798a5928de9aacec (patch) | |
tree | 83c8e127b069957f17d9b1684956b5d684895bae /src/corelib/tools/qvarlengtharray.h | |
parent | 62b082833d904688e44e1bac4849bfa54bf5fe82 (diff) | |
download | Qt-809583a34cb69367ecb4218f798a5928de9aacec.zip Qt-809583a34cb69367ecb4218f798a5928de9aacec.tar.gz Qt-809583a34cb69367ecb4218f798a5928de9aacec.tar.bz2 |
QVarLenghtArray: add some API to be consistant to QVector
That way it is easier to have QVarLenghtArray as a drop-in replacement for QVector
Reviewed-by: Joao
Diffstat (limited to 'src/corelib/tools/qvarlengtharray.h')
-rw-r--r-- | src/corelib/tools/qvarlengtharray.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/corelib/tools/qvarlengtharray.h b/src/corelib/tools/qvarlengtharray.h index aecb66e..9773d4b 100644 --- a/src/corelib/tools/qvarlengtharray.h +++ b/src/corelib/tools/qvarlengtharray.h @@ -107,6 +107,10 @@ public: Q_ASSERT(idx >= 0 && idx < s); return ptr[idx]; } + inline const T &at(int idx) const { return operator[](idx); } + + T value(int i) const; + T value(int i, const T &defaultValue) const; inline void append(const T &t) { if (s == a) // i.e. s != 0 @@ -248,6 +252,21 @@ Q_OUTOFLINE_TEMPLATE void QVarLengthArray<T, Prealloc>::realloc(int asize, int a } } +template <class T, int Prealloc> +Q_OUTOFLINE_TEMPLATE T QVarLengthArray<T, Prealloc>::value(int i) const +{ + if (i < 0 || i >= size()) { + return T(); + } + return at(i); +} +template <class T, int Prealloc> +Q_OUTOFLINE_TEMPLATE T QVarLengthArray<T, Prealloc>::value(int i, const T &defaultValue) const +{ + return (i < 0 || i >= size()) ? defaultValue : at(i); +} + + QT_END_NAMESPACE QT_END_HEADER |