実験


#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クラスって既にあったような気が….