lambda表达式给map赋值
来源:互联网 发布:技术支持和软件实施 编辑:程序博客网 时间:2024/06/06 00:59
今天有个需求,要把各文件后缀与不同文件图标对应起来,即一对多的关系,一个图标对应多文件类型。
本来想在类中放个常量map,结果发现常量map初始化是个问题,包括二维数据初始化,网上大部分人都说用static const ,还真是挺麻烦,这个算是个C++的缺陷吗?
再写个函数初始化它.也不叫初始化了,叫赋值.
感觉写麻烦了,不过还是觉的lambda有意思 (vs2010中的c++0x 非11)。
本来想在类中放个常量map,结果发现常量map初始化是个问题,包括二维数据初始化,网上大部分人都说用static const ,还真是挺麻烦,这个算是个C++的缺陷吗?
最后还是妥协了,就用了一个普通的map成员(实在没想到还有哪个比较好的一对多数据结构).
//文件类型与文件图标对应关系map<CString, list<CString>> m_mapFilesIcon;
再写个函数初始化它.也不叫初始化了,叫赋值.
void CClassRoomUIAgent::InitFilesIcon(){m_mapFilesIcon.clear();const int ICONSNUM = 9;const CString Icons[ICONSNUM] = {_T("ico_img.png"), _T("ico_music.png"), _T("ico_pdf.png"), _T("ico_ppt.png"), _T("ico_practice.png"), _T("ico_txt.png"), _T("ico_video.png"), _T("ico_wps.png"), _T("ico_xls.png")};const CString Files[ICONSNUM][10] = {{_T(".bmp"), _T(".jpg"), _T(".png")}, //图片类型{_T(".mp3"), _T(".wav")},//声音类型{_T(".pdf")},//pdf文件{_T(".ppt")},//ppt{_T(".pptx")},//练习文件{_T(".txt")},//文本{_T(".rmvb"), _T(".avi")},//视频{_T(".doc"), _T(".docx")},//doc{_T(".xls")},//表格};static int iCur = 0;for_each(Icons, Icons + ICONSNUM, [&](CString strExt)->void{list<CString> lstFiles;for_each(Files[iCur], Files[iCur] + ICONSNUM, [&lstFiles](const CString& ext)->void{if (!ext.IsEmpty()){lstFiles.push_back(ext);}});this->m_mapFilesIcon.insert(std::make_pair(strExt, lstFiles));iCur++;lstFiles.clear();});iCur = 0;}
感觉写麻烦了,不过还是觉的lambda有意思 (vs2010中的c++0x 非11)。
求大神拍砖!
0 0
- lambda表达式给map赋值
- 【python】lambda表达式、filter()、map()
- lambda表达式,结合map、reduce、filter函数
- python map()函数和lambda表达式
- 9.匿名函数:lambda表达式/filter()/map()
- Lambda表达式之map reduce & groupingBy
- lambda表达式与filter()\map()\reduce()
- 使用lambda表达式给集合排序
- 一种给Map赋值的优雅方式
- 运用map来给坐标赋值。
- jsp中用el表达式给select赋值
- python的lambda表达式 内建函数filter map reduce
- python的lambda表达式、filter函数、map函数
- python中的map,reduce,filter,sorted,lambda表达式
- JDK 8 Lambda 表达式解析Map和List
- JDK 8 Lambda 表达式解析Map和List
- python3 lambda 表达式以及在map函数中的应用
- 使用lambda表达式来给swing控件加监听
- 20060303-Help! My publisher wants a 300 dpi TIFF
- 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面
- 如何调试aspx程序
- 微信打飞机升级版(Qt实现)
- DB2创建用户
- lambda表达式给map赋值
- Xargs用法详解
- 【Android UI设计与开发】第03期:引导界面(三)仿微信引导界面以及动画效果
- 计算机中数值的表示
- resiprocate 无法创建stack
- Spring 的IoC使用示例2
- block 用法以及防止循环引用
- xampp中的apache启动不了显示busy warning:terminating worker thread 0的解决方案
- VS2010 MFC 用默认设置生成的应用程序GetMenu返回空值