diff options
author | Mathias Agopian <mathias@google.com> | 2011-04-25 15:28:17 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2011-04-25 15:28:17 -0700 |
commit | 589b64a64be16d04d35113bc7f2644e200cb4a3e (patch) | |
tree | 3e288340aeb11469b98a85d6e65b1efce727aaab /include/utils | |
parent | 9f0df630fda450571e097ab6b1f1b1e5fa71e981 (diff) | |
download | frameworks_base-589b64a64be16d04d35113bc7f2644e200cb4a3e.zip frameworks_base-589b64a64be16d04d35113bc7f2644e200cb4a3e.tar.gz frameworks_base-589b64a64be16d04d35113bc7f2644e200cb4a3e.tar.bz2 |
Add some basic STL compatibility to Vector<>
Change-Id: Iaf72623170ee415372c7989d7ba9ff627167449e
Diffstat (limited to 'include/utils')
-rw-r--r-- | include/utils/Vector.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/include/utils/Vector.h b/include/utils/Vector.h index 6fd307f..90477b7 100644 --- a/include/utils/Vector.h +++ b/include/utils/Vector.h @@ -165,6 +165,26 @@ public: // for debugging only inline size_t getItemSize() const { return itemSize(); } + + /* + * these inlines add some level of compatibility with STL. eventually + * we should probably turn things around. + */ + typedef TYPE* iterator; + typedef TYPE const* const_iterator; + + inline iterator begin() { return editArray(); } + inline iterator end() { return editArray() + size(); } + inline const_iterator begin() const { return array(); } + inline const_iterator end() const { return array() + size(); } + inline void reserve(size_t n) { setCapacity(n); } + inline bool empty() const{ return isEmpty(); } + inline void push_back(const TYPE& item) { insertAt(size(), item); } + inline void push_front(const TYPE& item) { insertAt(0, item); } + inline iterator erase(iterator pos) { + return begin() + removeItemsAt(pos-array()); + } + protected: virtual void do_construct(void* storage, size_t num) const; virtual void do_destroy(void* storage, size_t num) const; |