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

How to initialize dynamically created large integer array to a specific integer in C++?

本文关键字:整数 数组 初始化 创建 C++ 动态      更新时间:2023-10-16

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

"最好/最快的方法是什么?"

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

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

您可以从STL:中std::fill

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

但我建议您使用std::vector

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

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

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

您可以使用矢量:

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

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