如何使用已知数量的元素初始化静态数组?

时间:2011-11-23 08:59:10

标签: c++

我有一个包含最后一项'num_of_types'的枚举类型。 (也就是说,例如它将是15) 我想要一个静态的array_of_types [num_of_types],以便轻松计算我创建的每种类型的数量。 我的想法是:array_of_types [the_type] ++;

但是,我不知道声明并初始化这个静态数组?

4 个答案:

答案 0 :(得分:1)

这是你在找什么?

static TYPE staticArray[] = {
    VAL1,
    VAL2,
    ...
    VALN
};

static TYPE staticArray[MAX_ELEMS];

如果您不想在分配数组时初始化元素。

你不能做什么同时是指定元素的数量以及提供和初始化列表。

答案 1 :(得分:1)

这是你想要的吗?

enum MyEnum
{
Type1=0,
Type2,
Type3,
NumTypes
};


// initialize the entire array with 0
unsigned countArray[NumTypes]={0};

声明该数组后,您可以像上面提到的那样使用它:

countArray[type]++;

答案 2 :(得分:0)

您可以像平常一样使用它:

enum E
{
    A,
    N 
};

int main()
{
    int a[N];
    // Use 'a'...
}

在上面的示例中,变量a被定义为整数数组,大小为N

答案 3 :(得分:0)

你可以这样做:

enum Types { TYP_1, TYP_2, /*...*/ num_of_types};
class A {
    /*...*/
   static int array_of_types[num_of_types];
};


int A::array_of_types[num_of_types];

这样你就可以创建一个数组,里面填充了数组数据类型的默认值(int为零)。