本文由博主(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. spring mvc标准项目结构

    src com.xxx.inews.dao com.xxx.inews.dao.impl com.xxx.inews.data.entity com.xxx.inews.data.vo com.xxx ...

  2. GIve Me A Welcome Hug!

    类似于初来乍到,和大家打个招呼,并矫情的希望路人也能回赠我一个welcome hug. 到了这种园子那一定是做CS相关的了,一直以为如果能够坚持写技术博客,那一定会对自己的内力有十足的提升.借用一位前 ...

  3. [Android] 输入系统(一)

    Android输入系统是人与机器交互最主要的手段.我们通过按键或者触碰屏幕,会先经由linux产生中断,进行统一的处理过后,转换成Android能识别的事件信息,然后Android的输入系统去获取事件 ...

  4. h.264 Bi-Predictive Motion Search

    在做B帧的运动预测时,有两组参考图像列表(refList0, refList1),需要进行分别前向预测.后向预测.传统的预测方式是: 对refList0进行前向预测,得到最佳前向ref与mv. 对re ...

  5. Android 正则表达式验证手机和邮箱格式是否正确

    demo例子: package it.com.cc; import java.util.regex.Matcher; import java.util.regex.Pattern; import an ...

  6. fragment的实现与互相通信

    Android3.0后出来的新控件,主要是为了在平板和手机屏幕的兼容 实现效果: 点击Sd卡,出现SD目录下的所有文件和文件夹,点击外置Sd卡,出现外置Sd卡目录下的文件和文件夹.点击U盘,出现U盘目 ...

  7. Centos6.5 qt 安装

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

  8. migration vmware vms to openstack kvm 修改vmware windows scsi to ide

  9. awk使用入门

    1.基本用法 awk '{pattern + action}' {filenames} pattern 表示 AWK 在数据中查找的内容 action 是在找到匹配内容时所执行的一系列命令. patt ...

  10. wcf长连接

    项目有用到wcf  大体是jquery + webservice + wcf(网页是客户端,wcf是服务端),现在需要服务端往客户端推送信息,本来是用客户端ajax访问 2秒一次访问服务端,后来觉得这 ...