下面的例子其实是想展示下,如果一个字符串可以转为数字进行比较,那么还是转成数字吧,这样会快很多,尤其是当比较的次数非常巨大的时候。
#include <ctime>
#include <chrono>
#include <iostream>
using namespace std;
int64_t getCurrentLocalTimeStamp() {
std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds> tp =
std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now());
auto tmp = std::chrono::duration_cast<std::chrono::milliseconds>(tp.time_since_epoch());
return tmp.count();
}
int main()
{
string a = "111111";
string b = "600400";
int64_t start = getCurrentLocalTimeStamp();
bool flag = false;
for (int i = 0; i < 10000 * 10000; i++) {
if (a == b) {
flag = true;
}
}
int64_t end = getCurrentLocalTimeStamp();
cout << end - start << "毫秒" << endl;
start = getCurrentLocalTimeStamp();
flag = false;
long along = std::stol(a);
long blong = std::stol(b);
for (int i = 0; i < 10000 * 10000; i++) {
if (along == blong) {
flag = true;
}
}
end = getCurrentLocalTimeStamp();
cout << end - start << "毫秒" << endl;
}
运行结果:
1871毫秒
189毫秒