本文由博主(YinaPan)原创,转载请注明出处:http://www.cnblogs.com/YinaPan/p/cpp_strcmp.html 
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <string>
#include <Windows.h> using namespace std;
#pragma comment(lib, "winmm.lib") int StringCompare(){ string strSource = "hello world!";
string strDest = "I am a luck dog!"; LARGE_INTEGER m_liPerfFreq = { };
QueryPerformanceFrequency(&m_liPerfFreq); LARGE_INTEGER m_liPerfStart = { };
QueryPerformanceCounter(&m_liPerfStart); for (int i = ; i < 1e8; ++i)
strSource == strDest; LARGE_INTEGER liPerfNow = { };
QueryPerformanceCounter(&liPerfNow); int time = (((liPerfNow.QuadPart - m_liPerfStart.QuadPart) * ) / m_liPerfFreq.QuadPart);
cout << time << endl; return ; } int CharCompare(){ char str1[] = "hello world!";
char str2[] = "I am a luck dog!"; LARGE_INTEGER m_liPerfFreq = { };
QueryPerformanceFrequency(&m_liPerfFreq); LARGE_INTEGER m_liPerfStart = { };
QueryPerformanceCounter(&m_liPerfStart); for (int i = ; i < 1e8; ++i)
strcmp(str1, str2); LARGE_INTEGER liPerfNow = { };
QueryPerformanceCounter(&liPerfNow); int time = (((liPerfNow.QuadPart - m_liPerfStart.QuadPart) * ) / m_liPerfFreq.QuadPart);//单位精确到毫秒,要是不乘以1000则就是秒
cout << time << endl; return ;
} int _tmain(int argc, _TCHAR* argv[]){ StringCompare();
CharCompare();
return ;
}

去掉10的8次方for循环的影响

#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <string>
#include <Windows.h> using namespace std;
#pragma comment(lib, "winmm.lib") int StringCompare(){ string strSource = "hello world!";
string strDest = "I am a luck dog!"; LARGE_INTEGER m_liPerfFreq = { };
QueryPerformanceFrequency(&m_liPerfFreq); LARGE_INTEGER m_liPerfStart = { };
QueryPerformanceCounter(&m_liPerfStart); for (int i = ; i < 1e8; ++i)
;//strSource == strDest; LARGE_INTEGER liPerfNow = { };
QueryPerformanceCounter(&liPerfNow); int time = (((liPerfNow.QuadPart - m_liPerfStart.QuadPart) * ) / m_liPerfFreq.QuadPart);
cout << time << endl; return ;
} int CharCompare(){ char str1[] = "hello world!";
char str2[] = "I am a luck dog!"; LARGE_INTEGER m_liPerfFreq = { };
QueryPerformanceFrequency(&m_liPerfFreq); LARGE_INTEGER m_liPerfStart = { };
QueryPerformanceCounter(&m_liPerfStart); for (int i = ; i < 1e8; ++i)
;//strcmp(str1,str2); LARGE_INTEGER liPerfNow = { };
QueryPerformanceCounter(&liPerfNow); int time = (((liPerfNow.QuadPart - m_liPerfStart.QuadPart) * ) / m_liPerfFreq.QuadPart);//单位精确到毫秒,要是不乘以1000则就是秒
cout << time << endl; return ;
} int _tmain(int argc, _TCHAR* argv[]){ StringCompare();
CharCompare(); return ;
}

windows里

LARGE_INTEGER

QueryPerformanceCounter

QueryPerformanceFrequency

timeGettime

综上所述: 当达到10的8次方这个数量级时,string的相等操作确实是要比strcmp耗时,虽然string的重载的相等操作是memcmp内存的比较,但是之前还是有很多的判断的;

strcmp和==比较的更多相关文章

  1. Uva 11732 strcmp() Anyone?

    strcmp() Anyone? Time Limit: 2000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu [Subm ...

  2. Linux C 字符串函数 strlen()、strcat()、strncat()、strcmp()、strncmp()、strcpy()、strncpy() 详解

      strlen(返回字符串长度) 表头文件 #include <string.h> 定义函数 size_t strlen(const char *s); 函数说明 strlen()用来计 ...

  3. strcmp

     C++ Code  123456789101112   int strcmp(const char *dest, const char *source) {     assert((NULL !=  ...

  4. strlen(); strcpy(); strcat(); strcmp() ---笔记

    指针小知识点: int a =10; int *p=&a; int *q=p;        //p中保存的是a的地址 int *q=p;       //将p的值赋给q 作用是让q也指向a ...

  5. Strcmp(字符串1,字符串2)函数 Sizeof && strlen() Substr(a,b)

    Strcmp(字符串1,字符串2)函数 { strcmp函数是比较两个字符串的大小,返回比较的结果.一般形式是:  i=strcmp(字符串,字符串); 其中,字符串1.字符串2均可为字符串常量或变量 ...

  6. strcmp()&&mb_ereg_replace()&&ereg()

    主要记录两个函数,一个是strcmp(),一个是mb_ereg_replace() strcmp() php 5.3 以后字符串和数组比较会返回0 测试代码: PHP <?php $passwo ...

  7. strcmp函数使用总结

    Action() { /********************************* * Author:旺仔 * object:strcmp * date:2015-12-09 * fuc:我输 ...

  8. strcmp函数的使用

    Action() { /*********************************   * Author:旺仔   * object:strcmp   * date:2015-12-09    ...

  9. c/c++面试题(3)strcat/strcmp/strlen/strcpy的实现

    1.编写一个函数实现strlen以及strcpy函数. strcpy函数. 后面的字符串拷贝到一个字符数组中,要求拷贝好的字符串在字符数组的首 地址,并且只拷贝到'\0'的位置.原型是 char* m ...

  10. strcmp传入nil导致崩溃

    现象:连接电脑可以正常启动程序,不连接电脑启动程序就崩溃. 崩溃信息: BSXPCMessage received error for message: Connection invalid HW k ...

随机推荐

  1. QT美化界面的文章(真的很美)

    http://www.hookr.cn/tag/qt http://blog.csdn.net/yiyaaixuexi/article/category/758470 http://www.qtcn. ...

  2. Centos6.5 qt 安装

    1,centos linux系统必须预先以安装x Server(KDE or GNOME) 2,wget http://download.qt-project.org/official_release ...

  3. Miller_Rabin素数判断,rho

    safe保险一点5吧.我是MR: ; int gcd(int a,int b){return !b?a:gcd(b,a%b);} int mul(int a,int b,int p){ )*p); ? ...

  4. JS线程模型&Web Worker

    js线程模型 客户端javascript是单线程,浏览器无法同时运行两个事件处理程序 设计为单线程的理论是,客户端的javascript函数必须不能运行太长时间,否则会导致web浏览器无法对用户输入做 ...

  5. Java学习日记9-异常

    异常(Exception) 一.什么是异常? 异常就是程序中的错误,比如数组越界.访问空指针等.在Java中,一切皆对象,异常也不例外.所有的异常都是派生于Throwable类的一个实例对象. 二.异 ...

  6. adb getprop setprop watchprop用法

    在android系统中,有一些初始化的配置文件,例如: /init.rc /default.prop /system/build.prop 文件里面里面配置了开机设置的系统属性值,这些属性值,可以通过 ...

  7. H - Prince and Princess - HDU 4685(二分匹配+强连通分量)

    题意:有N个王子M个公主,王子喜欢一些公主,而且只能是王子喜欢的人,他们才可以结婚,现在让他们尽可能多的结婚的前提下找出来每个王子都可以和谁结婚. 分析:先求出来他们的最大匹配,因为给的数据未必是完备 ...

  8. O - Steady Cow Assignment - POJ 3189(多重匹配+枚举)

    题意:有N头奶牛,M个牛棚,每个牛棚都有一个容量,并且每个牛对牛棚都有一个好感度,现在重新分配牛棚,并且使好感觉最大的和最小的差值最小. 分析:好感度貌似不多,看起来可以枚举一下的样子,先试一下把 注 ...

  9. windows 编程 —— 子窗口 与 子窗口控件

    目录: 子窗口与主窗口的交互 子窗口控件 按钮类别 button 滚动条类别 scrollbar 静态类别  static 编辑框类别 edit 清单方块 listbox 子窗口与主窗口的交互 创建窗 ...

  10. MVC三层架构编程(Dao、service、servlet 之间的关系)

    木哈哈~先开心一会儿,人生的第一篇博客aaa.我一定好好写.不过之前也没怎么看别人写过,还是有点小激动呢,加油.好好总结,会总结的宝宝才会有提高! 今天想总结一下mvc三层架构模型编程,宝宝学习不怎么 ...