美文网首页
c++字符串比较

c++字符串比较

作者: loinliao | 来源:发表于2019-08-24 14:22 被阅读0次

    这样一段代码:

    
    #include <cstdio>
    #include <vector>
    #include <iostream>
    #include <map>
    #include <set>
    #include <string>
    #include <queue>
    #include <stack>
    #include <cmath>
    #include <ctime>
    using namespace std;
    
    
    // len = 100
    string s = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
    string t = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
    
    
    bool comp1() {
        for (int i=0;i<s.size();i++) {
            if (s[i] != t[i]) return false;
        }
        return true;
    }
    
    bool comp2() {
        return s == t;
    }
    
    int main() {
        int maxn = 10000000; // 1百万
        
        clock_t t1 = clock();
        for(int i=0;i<maxn;i++) {
            comp1();
        }
        cout << (clock() - t1) * 1.0 / CLOCKS_PER_SEC << "s" << endl;
    
        t1 = clock();
        for(int i=0;i<maxn;i++) {
            comp2();
        }
        cout << (clock() - t1) * 1.0 / CLOCKS_PER_SEC << "s" << endl;
    }
    

    1、两个长度为100的相等的字符串比较1百万次,两种比较方式会相差多少呢?

    14.4658s
    0.280318s
    差距达100倍。。。
    

    2、两个长度为100的最后一个字符不相等的字符串比较1百万次,两种比较方式会相差多少呢?

    14.5281s
    0.297259s
    

    3、两个长度为100的第一个字符不相等的字符串比较1百万次,两种比较方式会相差多少呢?

    0.16233s
    0.263476s
    

    显然应该使用==运算符,实现参考:https://stackoverflow.com/questions/4145840/the-way-to-compare-string-in-an-efficient-way-in-c

    相关文章

      网友评论

          本文标题:c++字符串比较

          本文链接:https://www.haomeiwen.com/subject/xifqectx.html