mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 06:15:04 +00:00
(svn r13574) -Doc: Document the small vector template class
This commit is contained in:
parent
e7f2765f4c
commit
c4cc5cdf3b
@ -8,11 +8,21 @@
|
|||||||
#include "../core/alloc_func.hpp"
|
#include "../core/alloc_func.hpp"
|
||||||
#include "../core/math_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>
|
template <typename T, uint S>
|
||||||
struct SmallVector {
|
struct SmallVector {
|
||||||
T *data;
|
T *data; ///< The pointer to the first item
|
||||||
uint items;
|
uint items; ///< The number of items stored
|
||||||
uint capacity;
|
uint capacity; ///< The avalible space for storing items
|
||||||
|
|
||||||
SmallVector() : data(NULL), items(0), capacity(0) { }
|
SmallVector() : data(NULL), items(0), capacity(0) { }
|
||||||
|
|
||||||
@ -65,41 +75,85 @@ struct SmallVector {
|
|||||||
return this->items;
|
return this->items;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the pointer to the first item (const)
|
||||||
|
*
|
||||||
|
* @return the pointer to the first item
|
||||||
|
*/
|
||||||
const T *Begin() const
|
const T *Begin() const
|
||||||
{
|
{
|
||||||
return this->data;
|
return this->data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the pointer to the first item
|
||||||
|
*
|
||||||
|
* @return the pointer to the first item
|
||||||
|
*/
|
||||||
T *Begin()
|
T *Begin()
|
||||||
{
|
{
|
||||||
return this->data;
|
return this->data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the pointer behind the last valid item (const)
|
||||||
|
*
|
||||||
|
* @return the pointer behind the last valid item
|
||||||
|
*/
|
||||||
const T *End() const
|
const T *End() const
|
||||||
{
|
{
|
||||||
return &this->data[this->items];
|
return &this->data[this->items];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the pointer behind the last valid item
|
||||||
|
*
|
||||||
|
* @return the pointer behind the last valid item
|
||||||
|
*/
|
||||||
T *End()
|
T *End()
|
||||||
{
|
{
|
||||||
return &this->data[this->items];
|
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
|
const T *Get(uint index) const
|
||||||
{
|
{
|
||||||
return &this->data[index];
|
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)
|
T *Get(uint index)
|
||||||
{
|
{
|
||||||
return &this->data[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
|
const T &operator[](uint index) const
|
||||||
{
|
{
|
||||||
return this->data[index];
|
return this->data[index];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get item "number"
|
||||||
|
*
|
||||||
|
* @param index the positon of the item
|
||||||
|
* @return the item
|
||||||
|
*/
|
||||||
T &operator[](uint index)
|
T &operator[](uint index)
|
||||||
{
|
{
|
||||||
return this->data[index];
|
return this->data[index];
|
||||||
|
Loading…
Reference in New Issue
Block a user