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