I am heavily procrastinating ?
#include <iostream>
#include <vector>
#include <array>
#include <chrono>
#include <random>
int main(void) {
std::minstd_rand ran;
ran.seed(42);
const size_t maxcount{10000000};
auto start{ std::chrono::system_clock::now() };
std::vector<long> victor(maxcount);
for( size_t i{0}; i < maxcount; ++i )
victor[i] = ran();
auto end{ std::chrono::system_clock::now() };
std::chrono::duration<double> diff{ end - start };
std::cout << "Victor took: " << diff.count() << "sec" << std::endl;
/* Stack overflow ! Array is on the stack i believe ...
start = std::chrono::system_clock::now();
std::array<long, maxcount> arny;
for( size_t i{0}; i < maxcount; ++i )
arny[i] = ran();
end = std::chrono::system_clock::now();
diff = end - start;
std::cout << "Arny took: " << diff.count() << "sec" << std::endl;*/
long *amy{ new long[maxcount] };
start = std::chrono::system_clock::now();
for( size_t i{0}; i < maxcount; ++i )
amy[i] = ran();
end = std::chrono::system_clock::now();
diff = end - start;
std::cout << "Amy took: " << diff.count() << "sec" << std::endl;
delete [] amy;
return EXIT_SUCCESS;
}
This is at least not decisively slower ?
But check out with your implementation of vec3, inline constructor, and all that ...