结论:(1百万数据)由快到慢排序
1、for(const auto& n : nums) 0.015s
for(const int& n : nums) (只测了基本类型) 0.015s
2、for(auto& n : nums) 0.019s
3、for(auto n: nums) 0.035s
4、for_each(nums.begin(), nums.end(), fun); 0.045s
5、for(int i(0); i < 1000000; ++i)
6、for(int i(0); i < nums.size(); ++i)
7、for(auto it = nums.begin(); it != nums.end(); ++it)
讨论
如果有关于具体底层的讨论,可以在评论区回复。:)
测试代码
#include <iostream>
#include <vector>
#include <algorithm>
#include <time.h>
using namespace std;
int main() {
vector<int> a(10000000);
long i = 10000000L;
clock_t start, finish;
double duration;
/* 测量一个事件持续的时间*/
int b(0);
start = clock();
for (auto i : a) {
int b = i;
//b = i;
}
finish