Luzhiled's Library

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub ei1333/library

:heavy_check_mark: other/vector-pool.hpp

Verified with

Code

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];
  }
};
Back to top page