Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "log_duration.h"
- #include <algorithm>
- #include <chrono>
- #include <cstdlib>
- #include <iostream>
- #include <vector>
- using namespace std;
- vector<int> ReverseVector(const vector<int> &source_vector){
- vector<int> res;
- for(int i : source_vector)
- res.insert(res.begin(), i);
- return res;
- }
- vector<int> ReverseVector2(const vector<int> &source_vector){
- vector<int> res;
- for(auto iterator = source_vector.rbegin(); iterator != source_vector.rend(); ++iterator)
- res.push_back(*iterator);
- return res;
- }
- vector<int> ReverseVector3(const vector<int> &source_vector){
- return {source_vector.rbegin(), source_vector.rend()};
- }
- vector<int> ReverseVector4(const vector<int> &source_vector){
- vector<int> res(source_vector.size());
- transform(source_vector.rbegin(), source_vector.rend(), res.begin(), [](int i){ return i; });
- return res;
- }
- void Operate() {
- vector<int> rand_vector;
- int n;
- cin >> n;
- rand_vector.reserve(n);
- for(int i = 0; i < n; ++i){
- rand_vector.push_back(rand());
- }
- if(n <= 100000){
- {
- LOG_DURATION("");
- ReverseVector(rand_vector);
- cerr << "<Naive>";
- }
- {
- LOG_DURATION("");
- ReverseVector2(rand_vector);
- cerr << "<Good>";
- }
- }
- if(n > 100000){
- {
- LOG_DURATION("");
- ReverseVector2(rand_vector);
- cerr << "<Good>";
- }
- {
- LOG_DURATION("");
- ReverseVector3(rand_vector);
- cerr << "<Best>";
- }
- {
- LOG_DURATION("");
- ReverseVector4(rand_vector);
- cerr << "<Good>";
- }
- }
- }
- int main() {
- Operate();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment