不知道大家在写程序的时候会不会用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是采用树结构,所以不会影响效率的,以后维护起来也方便多了:)。