list容器测试
#include <iostream>
#include <algorithm>
#include <list>
#include <string>
#include <random>
#include <ctime>
namespace jj03{
using std::cout;
using std::lower_bound;
using std::list;
using std::string;
using std::to_string;
using std::default_random_engine;
using std::uniform_int_distribution;
void test_array(){
cout << "...... TEST list ......\n";
list<string> c(500000,"");
default_random_engine e;
uniform_int_distribution<long> u(0,999999);
clock_t timeStart=clock();
for(auto &i:c) { i=to_string(u(e)); }
cout << "list<string>拷贝50万long int花费时间:" << (clock()-timeStart) << "\n";
std::cout << "list.size():" << c.size() << '\n';
timeStart=clock();
c.sort(); //排序
cout << "排序50万数据的list<string>花费时间:" << clock()-timeStart << "\n";
timeStart=clock();
auto it = lower_bound(c.begin(),c.end(),"258");
size_t times = clock() - timeStart;
if(it!=c.end()){
cout << "二分查找452(long)花费时间:" << times << "\n";
}
else {cout << "二分查找未找到452(long)花费时间:" << times << "\n";}
cout << "1s=" << CLOCKS_PER_SEC << " clock\n";
}
}
int main()
{
jj03::test_array();
return 0;
}
总结:拷贝50w字符串花费127.056ms,排序50w字符串花费601.904ms,二分查找的时间为109.349ms。