2011-11-23 39 views
0

我有一个最后一个项目'num_of_types'的枚举类型。 (例如,它将是15,例如) 我喜欢有一个静态的array_of_types [num_of_types],以便轻松计算每个创建类型的数量。 我的想法是有:array_of_types [the_type] ++;我不知道声明和初始化这个静态数组吗?如何使用已知数量的元素初始化一个静态数组?

回答

1

这是你想要的吗?

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


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

你宣称数组后,你可以为你所提到的使用它:

countArray[type]++; 
+0

是的,它的工作原理,谢谢 – tonnot

1

这是你在找什么?

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

static TYPE staticArray[MAX_ELEMS]; 

如果你不想在你分配的数组初始化的元素。

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

+0

为什么不呢?我经常这样做。 –

0

您使用它,就像正常:

enum E 
{ 
    A, 
    N 
}; 

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

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

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为0)。