c++ vector debug遍历方式效率对比

    科技2022-07-16  125

    #include <vector> #include <iostream> #include <time.h> using namespace std; int main() { vector<int> v(100000000); time_t begin, end; begin = clock(); for (int i = 0; i < v.size(); ++i) { v[i] = 10; } end = clock(); cout << end - begin << endl; begin = clock(); for(auto it = v.begin(); it != v.end(); ++it) { *it = 10; } end = clock(); cout << end - begin << endl; begin = clock(); for(auto &i : v) { i = 10; } end = clock(); cout << end - begin << endl; return 0; }

    执行结果: 下标:2183 迭代器:5117 :for循环 :3621

    显然在debug模式下,下标访问的效率最高。 在release模式下,经过编译器的优化,效率可能相差无几。

    Processed: 0.010, SQL: 8