/**************************************************************** **** **** This file belongs with the course **** Introduction to Scientific Programming in C++/Fortran2003 **** copyright 2017-2023 Victor Eijkhout eijkhout@tacc.utexas.edu **** **** arraytime.cxx : time the overhead for flexible vectors **** ****************************************************************/ #include //using std::chrono::system_clock::time_point; #include using std::cin, std::cout; #include using std::vector; #define LENGTH 100000000 int main() { std::chrono::system_clock::time_point point; double check = 0.; { //codesnippet vectorflex vector flex; //codesnippet end point = std::chrono::system_clock::now(); //codesnippet vectorflex for (int i=0; i(duration); cout << "Flexible time: " << millisec_duration.count()*1.e-3 << '\n'; check += flex.size(); } { //codesnippet vectorat vector stat(LENGTH); //codesnippet end point = std::chrono::system_clock::now(); //codesnippet vectorat for (int i=0; i(duration); cout << "Static at time: " << millisec_duration.count()*1.e-3 << '\n'; check += stat.size(); } { //codesnippet vectorsub vector stat(LENGTH); //codesnippet end stat[0] = 0.; point = std::chrono::system_clock::now(); //codesnippet vectorsub for (int i=0; i(duration); cout << "Static assign time: " << millisec_duration.count()*1.e-3 << '\n'; check += stat.size(); } { //codesnippet vectornew int *stat = new int[LENGTH]; //codesnippet end point = std::chrono::system_clock::now(); //codesnippet vectornew for (int i=0; i(duration); cout << "Static assign time to new: " << millisec_duration.count()*1.e-3 << '\n'; check += stat[LENGTH-1]+1; } cout << "check sum " << check << '\n'; return 0; }