int size=50000;
int arr[50000]; //valid
int arr[size]; //valid
int arr[50000]={0}; //valid
int arr[size]={0}; //error
我想创建一个可变大小(大小)的数组,并将该数组中的所有元素设置为0,而不使用for循环,因为我正在测试某些东西的速度,需要避免类似于for循环的事情大小像50000。
我有什么方法可以做到这一点吗?
答案 0 :(得分:4)
您应该使用C ++标题memset
或C语言<cstring>
}中声明的C标准函数<string.h>
。
例如
#include <string.h>
//...
int size=50000;
int arr[size];
memset( arr, 0, size * sizeof( int ) );
考虑到C ++ Standard中没有VLA。这可能只是某些组合的C ++语言扩展。
答案 1 :(得分:3)
std::vector<int> arr(size, 0);
C ++中的vector
是一种数据结构,其工作方式类似于可变大小的数组。如上所示,其构造函数之一允许您指定其大小以及用于填充所有元素的值。