如何在类中初始化数组?

时间:2014-03-22 02:26:40

标签: c++ arrays

在main之外的一个类中,我可以像这样初始化整个int:

int array[20] = {0};

它可以工作,并将所有元素设置为零。在一个类中,如果我尝试在构造函数中编写相同的代码,它就不会接受它。如何初始化它而不必循环遍历每个元素?

3 个答案:

答案 0 :(得分:1)

使用fill_n

class A
{
int array[50];
public:
    A(){
    std::fill_n(array,50,0)
    }
}

答案 1 :(得分:0)

带矢量

class Test
{
private:
  std::vector<int> test;

public:
  Test(): test(20) {}


};

或数组

class Test
{
private:
  std::array<int, 20> test;

public:
  Test() { }


};

答案 2 :(得分:0)

#include<iterator>
#include<array>
#include<algorithm>

    class Test
    {
    private:
      int arr[20];
      std::array<int, 20> test;

    public:
      Test() { 
        test.fill(0);  //for std::array
        std::fill(std::begin(arr),std::end(arr),0); //for c-style array
      }
    };

std :: array没有按默认值初始化其成员。所以我们需要调用“填充”方法。这些代码适用于C ++ 11标准。