Mercurial > hg > openttd
view src/misc/smallvec.h @ 8949:36b54e6eec1e draft
(svn r12737) -Codechange: Replace vector with a cut down class to allocate space as necessary. This avoids copying data around for vector's push_back() function.
author | peter1138 <peter1138@openttd.org> |
---|---|
date | Wed, 16 Apr 2008 19:01:09 +0000 |
parents | |
children | 231bd4dd1f98 |
line wrap: on
line source
/* $Id$ */ /* @file smallvec.h */ #ifndef SMALLVEC_H #define SMALLVEC_H template <typename T, uint S> struct SmallVector { T *data; uint items; uint capacity; SmallVector() : data(NULL), items(0), capacity(0) { } ~SmallVector() { free(data); } /** * Append an item and return it. */ T *Append() { if (items == capacity) { capacity += S; data = ReallocT(data, capacity); } return &data[items++]; } const T *Begin() const { return data; } const T *End() const { return &data[items]; } }; #endif /* SMALLVEC_H */