if( **|| ** || ** || ** || )的变种

 不知道大家在写程序的时候会不会用if( **|| ** || ** || ** || )来判断某一条件符合呢?例如

if( strPicFormat == _T(".gif") || strPicFormat == _T(".png") || strPicFormat == _T(".jpg") || ....)

{

}

这样的语句。这样的代码看起来非常的冗长,而且如果多处使用一样的代码,日后不容易更新和维护。

这时候STL的map就发挥用场了。大家都知道map是一对一的关系。所以我们定义一个map类型

map<CString,bool> mapPicFormat;

初始化。

CString strPicFormat = _T("");

strPicFormat = _T(".gif");

map[strPicFormat] = false;

strPicFormat = _T(".png");

map[strPicFormat] = false;

........

 

 

 

 

然后改写if结构。

if( strPicFormat == _T(".gif") || strPicFormat == _T(".png") || strPicFormat == _T(".jpg") || ....)

{

}

 

就改写为

CString  strPicFormatName= _T(".jpg");

map<CString,bool>::iterator itPicFormatToStatus  = mapPicFormat.find(strPicFromatName);

if(itPicFormatToStatus != mapPicFormat.end())

{

//是某一图片格式

 

}

由于map是采用树结构,所以不会影响效率的,以后维护起来也方便多了:)。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值