在main之外的一个类中,我可以像这样初始化整个int:
int array[20] = {0};
它可以工作,并将所有元素设置为零。在一个类中,如果我尝试在构造函数中编写相同的代码,它就不会接受它。如何初始化它而不必循环遍历每个元素?
答案 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标准。