一种为数组中的所有元素分配相同值的方法

时间:2011-12-07 20:10:16

标签: c++

有没有这样做?这是我第一次使用数组及其50个元素,我知道它们只会变大。

4 个答案:

答案 0 :(得分:14)

无论您使用何种类型的数组,如果它提供了迭代器/指针,您可以使用<algorithm>标题中的std::fill算法。

// STL-like container:
std::fill(vect.begin(), vect.end(), value);

// C-style array:
std::fill(arr, arr+elementsCount, value);

(其中value是您要分配的值,elementsCount是要修改的元素数量)

不是手动实现这样的循环会非常困难......

// Works for indexable containers
for(size_t i = 0; i<elementsCount; ++i)
    arr[i]=value;

答案 1 :(得分:6)

使用std::vector

std::vector<int> vect(1000, 3); // initialize with 1000 elements set to the value 3.

答案 2 :(得分:3)

如果必须使用数组,则可以使用for循环:

int array[50];

for (int i = 0; i < 50; ++i)
    array[i] = number; // where "number" is the number you want to set all the elements to

或作为快捷方式,使用std::fill

int array[50];

std::fill(array, array + 50, number);

如果要将所有元素设置为0的数字,则可以执行以下快捷方式:

int array[50] = { };

或者,如果你在讨论std::vector,那么有一个构造函数可以获取向量的初始大小以及将每个元素设置为:

vector<int> v(50, n); // where "n" is the number to set all the elements to.

答案 3 :(得分:0)

for(int i=0;i<sizeofarray;i++)
array[i]=valuetoassign

using method


void func_init_array(int arg[], int length) {
  for (int n=0; n<length; n++)
   arg[n]=notoassign
}