如何在C ++中将动态创建的大整数数组初始化为特定的整数?

时间:2015-03-01 20:35:34

标签: c++ arrays

我创建了一个像这样的数组R: int * R = new int[n]; 其中n取大值,比如100,000。我想在C ++中将数组的所有整数初始化为1。最好/最快的方法是什么?或者,循环整个数组是唯一的选择吗?

3 个答案:

答案 0 :(得分:8)

  

“最好/最快的方法是什么?”

在C ++中,您使用std::vector<int> R(n,1);代替。

如果您需要其他地方的int*,请参阅R.data()

答案 1 :(得分:1)

您可以从STL std::fill获取:

std::fill(R, R + n, 1);

但我建议你改用std::vector

std::vector<int> R(n, 1);

不要使用memset(R, 1, sizeof(int) * n),因为它会为数组的每个字节(不是元素)分配1。

答案 2 :(得分:0)

for(int i = 0; i < n; i++){
    R[i] = 1;
}
//don't forget to "delete[] R;"!

您可以使用矢量:

std::vector<int> R(n, 1);

但是数组和循环是最好的朋友,以防你无法使用向量。虽然建议使用vector,因为手动解除分配是由类处理的。