Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <vector>
- #include <stdlib.h>
- #include <iostream>
- #include <chrono>
- struct x {
- int a;
- float q, w, e;
- };
- int main()
- {
- const int ITERCOUNT = 100000000;
- auto old = std::chrono::high_resolution_clock::now();
- std::vector<x> testArray(ITERCOUNT, x{ 0,0,0,0 });
- for (int i = 0; i < ITERCOUNT; ++i) {
- testArray[i].a = (rand() % 100) + 1;
- }
- auto t = std::chrono::high_resolution_clock::now();
- std::chrono::duration<double> diff = t - old;
- std::cout << " Start : " << diff.count();
- old = t;
- int sum = 1;
- for (std::vector<x>::iterator it = testArray.begin(); it != testArray.end(); ++it) {
- sum *= it->a;
- sum /= 3;
- sum %= 100;
- }
- t = std::chrono::high_resolution_clock::now();
- diff = t - old;
- std::cout << "\n Test 1 : " << sum << " \t" << diff.count();
- old = t;
- sum = 1;
- for (int i = 0; i < ITERCOUNT; ++i) {
- sum *= testArray[i].a;
- sum /= 3;
- sum %= 100;
- }
- t = std::chrono::high_resolution_clock::now();
- diff = t - old;
- std::cout << "\n Test 2 : " << sum << " \t" << diff.count();
- old = t;
- sum = 1;
- x* pt = &testArray[0];
- x* ptEnd = &testArray[ITERCOUNT - 1];
- int ptSz = &testArray[1] - pt;
- while (pt != ptEnd) {
- sum *= pt->a;
- sum /= 3;
- sum %= 100;
- pt += ptSz;
- }
- sum *= pt->a;
- sum /= 3;
- sum %= 100;
- t = std::chrono::high_resolution_clock::now();
- diff = t - old;
- std::cout << "\n Test 3 : " << sum << " \t" << diff.count();
- old = t;
- }
Advertisement
Add Comment
Please, Sign In to add comment