summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qvarlengtharray.h
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@trolltech.com>2010-03-29 08:34:23 (GMT)
committerOlivier Goffart <ogoffart@trolltech.com>2010-03-29 12:05:16 (GMT)
commit809583a34cb69367ecb4218f798a5928de9aacec (patch)
tree83c8e127b069957f17d9b1684956b5d684895bae /src/corelib/tools/qvarlengtharray.h
parent62b082833d904688e44e1bac4849bfa54bf5fe82 (diff)
downloadQt-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.h19
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