1
是否有一個動態變體boost::array
使用C99的可變長度數組(VLA)內部可用(GCC)和時堆基於否則?可變長度數組C++包裝容器
是否有一個動態變體boost::array
使用C99的可變長度數組(VLA)內部可用(GCC)和時堆基於否則?可變長度數組C++包裝容器
boost::array
基於模板參數工作。模板參數不能是運行時值。所以不行。
此外,VLA僅適用於在堆棧中聲明的數組(ObjType val[someInteger];
)。如果你買不起堆分配,只要使用它們並不適用於數組聲明對象(struct ObjType { int val[someInteger]; };
內。因此,即使一個模板參數可以是運行時的值,它不會幫你的。
std::vector
分配器從預分配內存的「堆棧」中抽取
是否STL,Boost或其他提供這樣的堆棧式分配器還是必須自己編寫? – 2012-04-09 17:02:20
我相信STL只提供' std :: allocator',它使用'new'和'delete'.boost確實提供了一些分配器,包括一個池內存分配器(http://www.boost.org/doc/libs/1_49_0/libs/pool/doc /html/index.html),它可以做你想做的事情,否則,你將會擁有e寫它。 – 2012-04-09 17:46:16