大佬教程收集整理的这篇文章主要介绍了c – 如何使用1个非常大的数组快速初始化,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
int* arr = new int[BIGnumbER];
for(int i = 0; i < BIGnumbER; i++) arr[i] = 1
但我认为这需要很长时间.@H_801_5@
std::uninitialized_fill_n
:
#include <memory> // ... std::uninitialized_fill_n(arr,BIGnumbER,1);
在任何情况下,当涉及到性能时,规则是总是进行测量以支持您的假设 – 特别是如果您要放弃一个清晰,简单的设计来接受更复杂的设计,因为所谓的性能改进.@H_801_5@
编辑:@H_801_5@
请注意 – as Benjamin Lindley mentioned in the comments – 对于普通类型std :: uninitialized_fill_n没有比更明显的std::fill_n
带来任何优势.对于非平凡类型存在优势,因为Std :: uninitialized_fill将允许您分配内存区域然后构造对象到位.@H_801_5@
但是,不应该陷入为未初始化的内存区域调用std :: uninitialized_fill_n的陷阱.例如,以下内容将给出未定义的行为:@H_801_5@ @H_255_2@my_object* v = new my_object[BIGnumbER]; std::uninitialized_fill_n(my_object,my_object(42)); // UB!
以上是大佬教程为你收集整理的c – 如何使用1个非常大的数组快速初始化全部内容,希望文章能够帮你解决c – 如何使用1个非常大的数组快速初始化所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。