- 已知
定义了一个_zoneInfo变量,其中key为E_ZONETYPE类型,现在需要遍历_zoneInfo。
// 区域类型 enum ZoneType { ZT_ZHUANG = 0; // 庄家 ZT_TIAN = 1; // 天 ZT_DI = 2; // 地 ZT_XUAN = 3; // 玄 ZT_HUANG = 4; // 黄 };
using E_ZONETYPE = game::common::ZoneType;
std::map<E_ZONETYPE, ZONEINFO> _zoneInfo; // 区域
- 遍历方式
for (E_ZONETYPE type = ZT_ZHUANG; type <= ZT_HUANG; type = (E_ZONETYPE)(type + 1)) { _zoneInfo[type] }
- 说明
1、如果使用如下方式来遍历,则编译器会报类型转换失败错误,因为enum类型没有++运算符,也不支持+运算。
for (E_ZONETYPE type = E_ZONETYPE.ZHUANG; type <= E_ZONETYPE.HUANG; ++type) { ...... }
2、如果不严格要求使用E_ZONETYPE类型访问其他变量,则可以使用int方式来遍历,如下:
for (int type = E_ZONETYPE.ZHUANG; type <= E_ZONETYPE.HUANG; ++type) { ...... }