64,648
社区成员
发帖
与我相关
我的任务
分享
#include <vector>
#include <ctime>
#include <iostream>
using namespace std;
void main()
{
vector<int> arrar(1000000, 2);
clock_t sT1 = clock();
for (size_t i=0; i<arrar.size(); i++)
{
arrar[i]++;
}
clock_t eT1 = clock();
cout << eT1-sT1 << endl;
clock_t sT2 = clock();
for (vector<int>::iterator p=arrar.begin(); p!=arrar.end(); p++)
{
*p++;
}
clock_t eT2 = clock();
cout << eT2-sT2 << endl;
}
#include "stdafx.h"
#include <vector>
#include <ctime>
#include "iostream"
using namespace std;
int n = 10000000;
int _tmain(int argc, _TCHAR* argv[])
{
vector<int> vec;
for (int i = 0; i < n;i++)
{
vec.push_back(i);
}
int size = vec.size();
clock_t t1 = clock();
for (int i = 0; i < size;i++)
{
}
clock_t t2 = clock();
for (vector<int>::iterator iter = vec.begin(); iter != vec.end();++iter)
{
}
clock_t t3 = clock();
cout << (t2 - t1) << endl;
cout << (t3 - t2) << endl;
return 0;
}
std::for_each(std::begin(array), std::end(array),[](int& x){ ++x;});
for (vector<int>::iterator p=arrar.begin(); p!=arrar.end(); p++)
{
*p++;
}
这几句代码有两处使用不当,一处错误
arrar.end() 每次回生成一个临时对象,p++也会生成一个临时对象
*p++可能使p!=arrar.end()永远false
#include <ctime>
#include <iostream>
using namespace std;
void main()
{
const int n=100000000;
char *arr=new char[n];
clock_t sT1 = clock();
for(int i=0;i<n;i++)
arr[i]++;
clock_t eT1 = clock();
cout << eT1-sT1 << endl;
clock_t sT2 = clock();
for(int ii=0;ii<n;ii++)
(*(arr+i))--;
clock_t eT2 = clock();
cout << eT2-sT2 << endl;
}
// 不用stl,如上的纯数组来说,效率差不多
/*
输出:
465
401
Press any key to continue
*/