![](/img/trans.png)
[英]C++ Allocate Vector Size in class variable without default initialization
[英]C++ Allocate on stack without initialization
我正在编写一个程序,其中速度优化至关重要。 每增加1%的速度就好。
在一个经常调用的函数中,我需要一个固定大小的(小)类MyClass数组。 一开始,我使用了std :: vector。 整个过程很小(通常为256个项目,类大小为12字节,如果数组是16字节对齐的,则意味着3072字节)
现在发生的是:
因此,在堆栈上分配和跳过初始化都应该更快。 如果需要,我可以重写类构造函数,但我不知道怎么做。
谢谢,
艾蒂安
您不需要初始化吗? 因此,大概MyClass没有构造函数,也没有需要构造的数据成员吗? 在这种情况下,编译器将不会进行任何初始化。 因此,只需使用new。
如果MyClass确实有构造函数,那么您应该考虑为什么在您不需要初始化时就这样做了。
如果MyClass确实有需要构造的数据成员(比如说std::string
),那么我会查询您的断言,即您不需要初始化。
但是您是正确的,从向量切换到数组应该可以节省一些时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.