如何设置一个可变大小的静态数组以填充0' s

时间:2014-10-17 18:31:26

标签: c++ arrays size

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。

我有什么方法可以做到这一点吗?

2 个答案:

答案 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是一种数据结构,其工作方式类似于可变大小的数组。如上所示,其构造函数之一允许您指定其大小以及用于填充所有元素的值。