这4个容器,vector,list,map,unordered_map ...很重要b.c.它们代表了一些最常用的数据结构。在内部,它们表示为动态数组,双链表,可搜索树和散列。
#include "c_arclib.cpp"
using namespace std;
int main()
{
/*
Define - Vector, List, Map, Unordered_map
*/
vector<int> vector_int;
list<int> list_int;
map<int,int> map_int;
unordered_map<int, int> unordered_map_int;
/*
Define Loop and Time
*/
int i,j,loop1=5, loop2=4294967;
clock_t time_start,time_end,time_diff;
/*
Run Timing Test
*/
for(j=0;j<loop1;j++)
{
time_start=clock();
for(i=0;i<loop2;++i)
{
unordered_map_int.insert(pair<int,int>(rand(),rand()));
/*
map_int.insert(pair<int,int>(rand(),rand()));
vector_int.push_back(rand());
list_int.push_back(rand());
*/
}
time_end=clock();
time_diff=time_end-time_start;
cout << time_diff << endl;
}
/*
Results
Push / Insert
map (insert) 9500
unorderd_map (insert) 3300
list (push) 2600
vector (push) 900
*/
答案 0 :(得分:2)
我想你可能只想这样做?
cout << (double)(time_end - time_start) / CLOCKS_PER_SEC << endl;
此外,还有比clock()
更精确的计时器。
答案 1 :(得分:0)
返回的值是到目前为止使用的CPU时间;获取使用的秒数,除以CLOCKS_PER_SEC。
http://linux.die.net/man/3/clock
对于clock()
易于使用的C ++界面,请考虑boost::timer
。