为了排除某些特殊的文件后缀名,一开始我自然而然的这样写,判断每一个文件的后缀名:

    // 去除后缀名
foreach (const QString &strKey, local_map.keys()) { // strKey是本地全路径文件名,带冒号
if (m_MapExts.count()>) { // 这样速度快
QFileInfo file_info(strKey);
if (m_exclude) {
if (m_MapExts.contains(file_info.suffix())) continue; // 排除法:跳过不要的文件
} else {
if (!m_MapExts.contains(file_info.suffix())) continue; // 包括法:只要里面包含的文件
}
}
}

转眼一想,这样效率很低。因为排除某些文件后缀名的情况并不是很多,难道每次都要对每一个文件判断?当然是先判断有没有特殊文件后缀名要处理,然后再判断有没有这样的文件。于是改写成:

    // 去除后缀名
if (m_MapExts.count()>) { // 这样速度快
foreach (const QString &strKey, local_map.keys()) { // strKey是本地全路径文件名,带冒号
QFileInfo file_info(strKey);
if (m_exclude) {
if (m_MapExts.contains(file_info.suffix())) continue; // 排除法:跳过不要的文件
} else {
if (!m_MapExts.contains(file_info.suffix())) continue; // 包括法:只要里面包含的文件
}
}
}

感叹一下,一行之差,而且还是一个字都不变,效率差之千里!以后这种错误可要小心才是啊。

最新文章

  1. Linux系统硬链接和软链接介绍
  2. 《Entity Framework 6 Recipes》中文翻译系列 (15) -----第三章 查询之与列表值比较和过滤关联实体
  3. DB2数据库参数建议(Linux)
  4. Highcharts 在低版本 IE 上使用注意事项及个人总结
  5. 设置input 内容居中显示 .
  6. Smart Tip
  7. 关于Python的super用法
  8. MyBatis拦截器:给参数对象属性赋值
  9. dbms_job涉及到的知识点
  10. 基于springMVC+springSecurity3.x+Mybaits3.x的权限系统,,开放源码,支持开源
  11. Linux 下最为人熟知的解压缩工具
  12. Java集合中那些类是线程安全的
  13. JMS(java消息服务)整合Spring项目案例
  14. Spring MVC如何进行JSON数据的传输与接受
  15. python中的判断语句与循环语句
  16. db2 查新索引 主键 sql
  17. [题解]邮递员寄信(luoguP1629)
  18. mp4文件解析(纯c解析代码)
  19. C# winfrom容器布局与工具栏&&右键菜单栏&&隐藏显示小图标的的简单事件
  20. 向json对象中添加数组

热门文章

  1. Qt Creator (C++)保存文件
  2. 如何实现phpcms v9_4X版本tag的伪静态?
  3. 干净的 ef for Oracle appconfg配置
  4. TextBox控件
  5. EXTJS 4.2 资料 Grid嵌套
  6. Schtasks 命令详解
  7. struts2拦截器-简单实现非法登录验证
  8. 常用脚本语言Perl,Python,Ruby,Javascript一 Perl,Python,Ruby,Javascript
  9. MyEclipse中文注释乱码解决
  10. struts2+hibernate-jpa+Spring+maven 整合(2)