実験
#include <ctime> #include <vector> #include <iostream> // 生まれてから死ぬまでの時間を計り,最期にそれを吐く class timer { clock_t begin_; public: timer(): begin_(clock()){ } ~timer() throw(){ clock_t end = clock(); double sec = end - begin_; sec /= ClOCKS_PER_SEC; std::cout << sec << sed::endl; } }; int main(){ const int N = 1000 * 1000 * 100; // 個数 int i; // vectorへ(algorithmでやったらセグフォがでた) std::vector<int> v(N); for(i=0; i<N; ++i) v[i] = i; i = 0; std::vector<int>::iterator it = v.begin(); std::vector<int>::iterator end = v.end(); { timer t; for(; it != end; ++it) *it = 0; } // 1.88 { timer t; for(; i<N; ++i) v[i] = 0; } // 0.6 }
意外.
逆だと思ってた.
自分はパフォーマンスとかはまだ知識不足なので分からないですが.
というか,こういうtimerクラスって既にあったような気が….