让我们说:
enum X {
X1,
X2,
X3
};
int func() {
std::map<int, X> abc;
...
}
假设0是容器中没有的键。
我知道abc [0]需要对X对象进行值初始化。
以下是问题:
(1)初始化始终是枚举的零初始化吗?即abc [0]始终被初始化为对应于0?
的枚举器(2)如果我们有什么
enum X {
X1 = 1,
...
abc [0]会是什么?
答案 0 :(得分:1)
初始化始终是枚举的零初始化吗?即
abc[0]
始终初始化为与0
对应的枚举器?
是
如果我们有
怎么办?enum X { X1 = 1, ...
abc[0]
会是什么?
它将是0
。
工作计划(也可以在http://ideone.com/RVOfT6看到):
#include <iostream>
#include <map>
enum X {
X1,
X2,
X3
};
int main()
{
X x = {};
std::map<int, X> abc;
std::cout << x << std::endl;
std::cout << abc[0] << std::endl;
}
输出:
0 0