nochnoikoshmar1

Untitled

May 8th, 2023
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.82 KB | None | 0 0
  1. #include "log_duration.h"
  2.  
  3. #include <algorithm>
  4. #include <chrono>
  5. #include <cstdlib>
  6. #include <iostream>
  7. #include <vector>
  8.  
  9. using namespace std;
  10.  
  11. vector<int> ReverseVector(const vector<int> &source_vector){
  12.     vector<int> res;
  13.     for(int i : source_vector)
  14.         res.insert(res.begin(), i);
  15.     return res;
  16. }
  17. vector<int> ReverseVector2(const vector<int> &source_vector){
  18.     vector<int> res;
  19.     for(auto iterator = source_vector.rbegin(); iterator != source_vector.rend(); ++iterator)
  20.         res.push_back(*iterator);  
  21.     return res;
  22. }
  23. vector<int> ReverseVector3(const vector<int> &source_vector){
  24.     return {source_vector.rbegin(), source_vector.rend()};
  25. }
  26. vector<int> ReverseVector4(const vector<int> &source_vector){    
  27.     vector<int> res(source_vector.size());
  28.     transform(source_vector.rbegin(), source_vector.rend(), res.begin(), [](int i){ return i; });
  29.     return res;
  30. }
  31. void Operate() {
  32.     vector<int> rand_vector;
  33.     int n;
  34.     cin >> n;
  35.     rand_vector.reserve(n);
  36.     for(int i = 0; i < n; ++i){
  37.         rand_vector.push_back(rand());
  38.     }
  39.     if(n <= 100000){
  40.         {
  41.             LOG_DURATION("");
  42.             ReverseVector(rand_vector);
  43.             cerr << "<Naive>";
  44.         }
  45.         {
  46.             LOG_DURATION("");
  47.             ReverseVector2(rand_vector);
  48.             cerr << "<Good>";
  49.         }
  50.        
  51.     }
  52.     if(n > 100000){
  53.         {
  54.             LOG_DURATION("");
  55.             ReverseVector2(rand_vector);
  56.             cerr << "<Good>";
  57.         }
  58.         {
  59.             LOG_DURATION("");
  60.             ReverseVector3(rand_vector);
  61.             cerr << "<Best>";
  62.         }
  63.         {
  64.             LOG_DURATION("");
  65.             ReverseVector4(rand_vector);
  66.             cerr << "<Good>";
  67.         }
  68.     }  
  69. }
  70.  
  71. int main() {
  72.     Operate();
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment