← index
cplusplus11.Examples/stopwatch/movetest.cpp
Source: cplusplus11.Examples/stopwatch/movetest.cpp
#include<iostream>
#include<string>
#include<vector>
#include<cstdlib>
#include<ctime>

#include"stopwatch.hpp"



void concat_Values(std::vector<int> &v) {
    unsigned long value = 0;
    for(auto &i : v) {
        value += i;
    }
    std::cout << "Value is: " << value << "\n";
}


void copy_Test(std::vector<int> &v) {
    StopWatch<SystemClock> clock("copy");
    std::vector<int> mv(v); // temporary to test operation
    concat_Values(mv);
}


std::vector<int> mv;

void move_Test(std::vector<int> &&v) {
    StopWatch<SystemClock> clock("move");
    mv = v;
    concat_Values(mv);
}


int main() {
    
    std::cout << "Please wait ....\n";
    std::srand(static_cast<unsigned int>(std::time(0)));
    
    std::vector<int> test_vector;
    const unsigned long limit = static_cast<unsigned long>(rand()%255 + 99999999);
    for(unsigned long i = 0; i < limit; ++i) test_vector.push_back(rand()%255);
    
    copy_Test(test_vector);
    move_Test(std::move(test_vector));
    std::cout << "Container has: " << mv.size() << " elements\n";
    
    
    return 0;
}