//**********
double d;
//auto v = {10, 1, 2, 3, 4, 5, 6, 7, 8, 9};
std::vector<int> v = {10, 1, 2, 3, 4, 5, 6, 7, 8, 9};
std::cout << "vector\n";
//**********
auto start_time = std::chrono::high_resolution_clock::now();
//for (int t = 0; t < 100; t++)
for (auto t = 0; t != 100; ++t)
{
for (int s = 0; s < 1000; s++)
f0 (1000, v);
}
auto end_time = std::chrono::high_resolution_clock::now();
auto time = end_time - start_time;
d = std::chrono::duration_cast<std::chrono::microseconds>(time).count();
std::cout << "f0 took " << (d / 100) << " microseconds.\n";
//**********
auto start_time6 = std::chrono::high_resolution_clock::now();
for (int t = 0; t < 100; t++)
//for (auto t = 0; t != 100; ++t)
{
for (int s = 0; s < 1000; s++)
f0 (1000, v);
}
auto end_time6 = std::chrono::high_resolution_clock::now();
auto time6 = end_time6 - start_time6;
d = std::chrono::duration_cast<std::chrono::microseconds>(time6).count();
std::cout << "f6 took " << (d / 100) << " microseconds.\n";
//**********
auto start_time1 = std::chrono::high_resolution_clock::now();
for (int t = 0; t < 100; t++)
{
for (int s = 0; s < 1000; s++)
f1 (1000, v);
}
auto end_time1 = std::chrono::high_resolution_clock::now();
auto time1 = end_time1 - start_time1;
d = std::chrono::duration_cast<std::chrono::microseconds>(time1).count();
std::cout << "f1 took " << (d / 100) << " microseconds.\n";
//**********
auto start_time2 = std::chrono::high_resolution_clock::now();
for (int t = 0; t < 100; t++)
{
for (int s = 0; s < 1000; s++)
f2 (1000, v);
}
auto end_time2 = std::chrono::high_resolution_clock::now();
auto time2 = end_time2 - start_time2;
d = std::chrono::duration_cast<std::chrono::microseconds>(time2).count();
std::cout << "f2 took " << (d / 100) << " microseconds reverse.\n";
//**********
auto start_time3 = std::chrono::high_resolution_clock::now();
for (int t = 0; t < 100; t++)
{
for (int s = 0; s < 1000; s++)
f3 (1000, v);
}
auto end_time3 = std::chrono::high_resolution_clock::now();
auto time3 = end_time3 - start_time3;
d = std::chrono::duration_cast<std::chrono::microseconds>(time3).count();
std::cout << "f3 took " << (d / 100)
<< " microseconds.\n";
//**********
int a[] = {10, 1, 2, 3, 4, 5, 6, 7, 8, 9};
std::cout << "\narray\n";
//**********
auto start_time4 = std::chrono::high_resolution_clock::now();
for (int t = 0; t < 100; t++)
{
for (int s = 0; s < 1000; s++)
f4 (1000, a, (sizeof(a)/sizeof(a[0])));
}
auto end_time4 = std::chrono::high_resolution_clock::now();
auto time4 = end_time4 - start_time4;
d = std::chrono::duration_cast<std::chrono::microseconds>(time4).count();
std::cout << "f4 took "
<< (d / 100)
<< " microseconds.\n";
//**********
auto start_time5 = std::chrono::high_resolution_clock::now();
for (int t = 0; t < 100; t++)
{
for (int s = 0; s < 1000; s++)
f5 (1000, a, (sizeof(a)/sizeof(a[0])));
}
auto end_time5 = std::chrono::high_resolution_clock::now();
auto time5 = end_time5 - start_time5;
d = std::chrono::duration_cast<std::chrono::microseconds>(time5).count();
std::cout << "f5 took "
<< (d / 100)
<< " microseconds reverse.\n";
//**********
std::cout << "\n";