|
|
1
49
https://chromium.googlesource.com/chromium/chromium/+/master/base/stack_container.h
它的工作原理是在你说它有多大的地方分配一个缓冲区。创建容器并调用
|
|
|
2
21
|
|
|
3
11
您可能希望查看的一些选项:
Matthew Wilson(不完美C++的作者)的STLSoft有一个
http://www.stlsoft.org/doc-1.9/classstlsoft_1_1auto__buffer.html 请注意,我自己使用的实现不是STLSoft的,而是一个大量借鉴STLSoft的实现。
http://tlzprgmr.wordpress.com/2008/04/02/c-how-to-create-variable-length-arrays-on-the-stack/
然后是
http://www.boost.org/doc/libs/1_37_0/doc/html/boost/array.html |
|
|
4
6
如果速度很重要,我会看到运行时间
在一个平台上,仅mac ppc、gcc-4.2-O3。 不要接受任何你没有伪造的时间。 当然,每种使用模式都是不同的。 尽管如此,这些因素>2.给我一个惊喜。 (如果mems(内存访问)是运行时的主要因素, 各种实现中的所有额外mems是什么?)
|
|
|
5
5
您可以为std::vector使用自己的分配器,并让它分配基于堆栈的存储的块,类似于您的示例。分配器类是模板的第二部分。 编辑:我从来没有尝试过这个,通过查看文档,我进一步相信您无法编写自己的分配器。我还在调查。 |
|
|
6
3
|
|
7
2
你为什么要把它放在桌子上 堆栈 |
|
|
8
2
您可能正在使用Qt。那你可能想去
如果我正在使用的话,我更喜欢boost版本。 |
|
|
9
1
我有这个。它叫 small_vector
|
|
|
10
1
StackVector ,一个小型实现,可以这样使用:
例子:
…就这些!
免责声明:通常不要在堆栈上使用非常大的数组大小。就像你不应该使用
|