码迷,mamicode.com
首页 > 其他好文 > 详细

if语句写在外面效率更高

时间:2015-03-07 01:01:53      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

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

    // 去除后缀名
    foreach (const QString &strKey, local_map.keys()) {    // strKey是本地全路径文件名,带冒号
        if (m_MapExts.count()>0) { // 这样速度快
            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()>0) { // 这样速度快
        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; // 包括法:只要里面包含的文件
            }
        }
    }

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

if语句写在外面效率更高

标签:

原文地址:http://www.cnblogs.com/findumars/p/4319586.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!