64,661
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <time.h>
#include <sys/timeb.h>
#include <vector>
using namespace std;
const int cnt = 5000000;
class X
{
public:
X(int i=0,const string &s=""):i(i),s(s){}
private:
int i ;
string s;
};
double get_diff(const struct timeb &left,const struct timeb & right)
{
double mill_sec_diff = 0;
double sec_diff= 0;
if(left.millitm >= right.millitm)
{
mill_sec_diff = left.millitm - right.millitm;
sec_diff = left.time - right.time;
}
else
{
mill_sec_diff = left.millitm - right.millitm + 1000;
sec_diff = left.time - right.time -1;
}
return sec_diff + mill_sec_diff/1000;
}
int main()
{
struct timeb begin,mid,end;
ftime(&begin);
vector<X> vec;
for (int i =0;i != cnt;++i)
{
vec.push_back(X(i));
}
ftime(&mid);
vector<X> vec2;
for(int i =0;i != cnt;++i)
{
vec2.emplace_back(i," ");
}
ftime(&end);
cout<<"push time:"<<get_diff(mid,begin)<<endl;
cout<<"emplace time:"<<get_diff(end,mid)<<endl;
}