diff options
author | skidd13 <skidd13@openttd.org> | 2008-06-19 09:33:50 +0000 |
---|---|---|
committer | skidd13 <skidd13@openttd.org> | 2008-06-19 09:33:50 +0000 |
commit | a7e3f09f7c39c509939ebde387d9e04817355c77 (patch) | |
tree | 9ef9eb1c8a56a2e8b424b22cd6ed458d0aa14b35 /src | |
parent | 1818d5c2e19b9a46952bb4df52c8d38529fc3052 (diff) | |
download | openttd-a7e3f09f7c39c509939ebde387d9e04817355c77.tar.xz |
(svn r13574) -Doc: Document the small vector template class
Diffstat (limited to 'src')
-rw-r--r-- | src/misc/smallvec.h | 60 |
1 files changed, 57 insertions, 3 deletions
diff --git a/src/misc/smallvec.h b/src/misc/smallvec.h index 9fc212dbe..477a93178 100644 --- a/src/misc/smallvec.h +++ b/src/misc/smallvec.h @@ -8,11 +8,21 @@ #include "../core/alloc_func.hpp" #include "../core/math_func.hpp" +/** + * Simple vector template class. + * + * @note There are no asserts in the class so you have + * to care about that you grab an item which is + * inside the list. + * + * @param T The type of the items stored + * @param S The steps of allocation + */ template <typename T, uint S> struct SmallVector { - T *data; - uint items; - uint capacity; + T *data; ///< The pointer to the first item + uint items; ///< The number of items stored + uint capacity; ///< The avalible space for storing items SmallVector() : data(NULL), items(0), capacity(0) { } @@ -65,41 +75,85 @@ struct SmallVector { return this->items; } + /** + * Get the pointer to the first item (const) + * + * @return the pointer to the first item + */ const T *Begin() const { return this->data; } + /** + * Get the pointer to the first item + * + * @return the pointer to the first item + */ T *Begin() { return this->data; } + /** + * Get the pointer behind the last valid item (const) + * + * @return the pointer behind the last valid item + */ const T *End() const { return &this->data[this->items]; } + /** + * Get the pointer behind the last valid item + * + * @return the pointer behind the last valid item + */ T *End() { return &this->data[this->items]; } + /** + * Get the pointer to item "number" (const) + * + * @param index the position of the item + * @return the pointer to the item + */ const T *Get(uint index) const { return &this->data[index]; } + /** + * Get the pointer to item "number" + * + * @param index the position of the item + * @return the pointer to the item + */ T *Get(uint index) { return &this->data[index]; } + /** + * Get item "number" (const) + * + * @param index the positon of the item + * @return the item + */ const T &operator[](uint index) const { return this->data[index]; } + /** + * Get item "number" + * + * @param index the positon of the item + * @return the item + */ T &operator[](uint index) { return this->data[index]; |