Guest User

Untitled

a guest
Aug 24th, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.43 KB | None | 0 0
  1. #include <vector>
  2. #include <stdlib.h>
  3. #include <iostream>
  4. #include <chrono>
  5.  
  6. struct x {
  7.     int a;
  8.     float q, w, e;
  9. };
  10.  
  11. int main()
  12. {
  13.     const int ITERCOUNT = 100000000;
  14.     auto old = std::chrono::high_resolution_clock::now();
  15.     std::vector<x> testArray(ITERCOUNT, x{ 0,0,0,0 });
  16.  
  17.     for (int i = 0; i < ITERCOUNT; ++i) {
  18.         testArray[i].a = (rand() % 100) + 1;
  19.     }
  20.  
  21.     auto t = std::chrono::high_resolution_clock::now();
  22.     std::chrono::duration<double> diff = t - old;
  23.     std::cout << " Start : " << diff.count();
  24.     old = t;
  25.  
  26.     int sum = 1;
  27.     for (std::vector<x>::iterator it = testArray.begin(); it != testArray.end(); ++it) {
  28.         sum *= it->a;
  29.         sum /= 3;
  30.         sum %= 100;
  31.     }
  32.     t = std::chrono::high_resolution_clock::now();
  33.     diff = t - old;
  34.     std::cout << "\n Test 1 : " << sum << " \t" << diff.count();
  35.     old = t;
  36.  
  37.     sum = 1;
  38.     for (int i = 0; i < ITERCOUNT; ++i) {
  39.         sum *= testArray[i].a;
  40.         sum /= 3;
  41.         sum %= 100;
  42.     }
  43.     t = std::chrono::high_resolution_clock::now();
  44.     diff = t - old;
  45.     std::cout << "\n Test 2 : " << sum << " \t" << diff.count();
  46.     old = t;
  47.  
  48.     sum = 1;
  49.     x* pt = &testArray[0];
  50.     x* ptEnd = &testArray[ITERCOUNT - 1];
  51.     int ptSz = &testArray[1] - pt;
  52.     while (pt != ptEnd) {
  53.         sum *= pt->a;
  54.         sum /= 3;
  55.         sum %= 100;
  56.         pt += ptSz;
  57.     }
  58.     sum *= pt->a;
  59.     sum /= 3;
  60.     sum %= 100;
  61.  
  62.     t = std::chrono::high_resolution_clock::now();
  63.     diff = t - old;
  64.     std::cout << "\n Test 3 : " << sum << " \t" << diff.count();
  65.     old = t;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment