strcmp和==比较
本文由博主(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和==比较的更多相关文章
- Uva 11732 strcmp() Anyone?
strcmp() Anyone? Time Limit: 2000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu [Subm ...
- Linux C 字符串函数 strlen()、strcat()、strncat()、strcmp()、strncmp()、strcpy()、strncpy() 详解
strlen(返回字符串长度) 表头文件 #include <string.h> 定义函数 size_t strlen(const char *s); 函数说明 strlen()用来计 ...
- strcmp
C++ Code 123456789101112 int strcmp(const char *dest, const char *source) { assert((NULL != ...
- strlen(); strcpy(); strcat(); strcmp() ---笔记
指针小知识点: int a =10; int *p=&a; int *q=p; //p中保存的是a的地址 int *q=p; //将p的值赋给q 作用是让q也指向a ...
- Strcmp(字符串1,字符串2)函数 Sizeof && strlen() Substr(a,b)
Strcmp(字符串1,字符串2)函数 { strcmp函数是比较两个字符串的大小,返回比较的结果.一般形式是: i=strcmp(字符串,字符串); 其中,字符串1.字符串2均可为字符串常量或变量 ...
- strcmp()&&mb_ereg_replace()&&ereg()
主要记录两个函数,一个是strcmp(),一个是mb_ereg_replace() strcmp() php 5.3 以后字符串和数组比较会返回0 测试代码: PHP <?php $passwo ...
- strcmp函数使用总结
Action() { /********************************* * Author:旺仔 * object:strcmp * date:2015-12-09 * fuc:我输 ...
- strcmp函数的使用
Action() { /********************************* * Author:旺仔 * object:strcmp * date:2015-12-09 ...
- c/c++面试题(3)strcat/strcmp/strlen/strcpy的实现
1.编写一个函数实现strlen以及strcpy函数. strcpy函数. 后面的字符串拷贝到一个字符数组中,要求拷贝好的字符串在字符数组的首 地址,并且只拷贝到'\0'的位置.原型是 char* m ...
- strcmp传入nil导致崩溃
现象:连接电脑可以正常启动程序,不连接电脑启动程序就崩溃. 崩溃信息: BSXPCMessage received error for message: Connection invalid HW k ...
随机推荐
- spring mvc标准项目结构
src com.xxx.inews.dao com.xxx.inews.dao.impl com.xxx.inews.data.entity com.xxx.inews.data.vo com.xxx ...
- GIve Me A Welcome Hug!
类似于初来乍到,和大家打个招呼,并矫情的希望路人也能回赠我一个welcome hug. 到了这种园子那一定是做CS相关的了,一直以为如果能够坚持写技术博客,那一定会对自己的内力有十足的提升.借用一位前 ...
- [Android] 输入系统(一)
Android输入系统是人与机器交互最主要的手段.我们通过按键或者触碰屏幕,会先经由linux产生中断,进行统一的处理过后,转换成Android能识别的事件信息,然后Android的输入系统去获取事件 ...
- h.264 Bi-Predictive Motion Search
在做B帧的运动预测时,有两组参考图像列表(refList0, refList1),需要进行分别前向预测.后向预测.传统的预测方式是: 对refList0进行前向预测,得到最佳前向ref与mv. 对re ...
- Android 正则表达式验证手机和邮箱格式是否正确
demo例子: package it.com.cc; import java.util.regex.Matcher; import java.util.regex.Pattern; import an ...
- fragment的实现与互相通信
Android3.0后出来的新控件,主要是为了在平板和手机屏幕的兼容 实现效果: 点击Sd卡,出现SD目录下的所有文件和文件夹,点击外置Sd卡,出现外置Sd卡目录下的文件和文件夹.点击U盘,出现U盘目 ...
- Centos6.5 qt 安装
1,centos linux系统必须预先以安装x Server(KDE or GNOME) 2,wget http://download.qt-project.org/official_release ...
- migration vmware vms to openstack kvm 修改vmware windows scsi to ide
- awk使用入门
1.基本用法 awk '{pattern + action}' {filenames} pattern 表示 AWK 在数据中查找的内容 action 是在找到匹配内容时所执行的一系列命令. patt ...
- wcf长连接
项目有用到wcf 大体是jquery + webservice + wcf(网页是客户端,wcf是服务端),现在需要服务端往客户端推送信息,本来是用客户端ajax访问 2秒一次访问服务端,后来觉得这 ...