This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub ei1333/library
#include "other/vector-pool.hpp"
template< class T > struct VectorPool { vector< T > pool; vector< T * > stock; int ptr; VectorPool() = default; VectorPool(int sz) : pool(sz), stock(sz) {} inline T *alloc() { return stock[--ptr]; } inline void free(T *t) { stock[ptr++] = t; } void clear() { ptr = (int) pool.size(); for(int i = 0; i < pool.size(); i++) stock[i] = &pool[i]; } };
#line 1 "other/vector-pool.hpp" template< class T > struct VectorPool { vector< T > pool; vector< T * > stock; int ptr; VectorPool() = default; VectorPool(int sz) : pool(sz), stock(sz) {} inline T *alloc() { return stock[--ptr]; } inline void free(T *t) { stock[ptr++] = t; } void clear() { ptr = (int) pool.size(); for(int i = 0; i < pool.size(); i++) stock[i] = &pool[i]; } };