STLのvectorの実行速度を犠牲にしないで使う方法
昔、vectorは遅い!という事をこのブログに記したが、実際push_back()を使って事前に確保した領域を拡張しない限り遅くないのでネタとして*1ここにメモしておくことにした。
要するにvector
http://ideone.com/cRo9i
//正しいvectorを使った配列の使い方 //resize後 配列と同じように・・・ #include <iostream> #include <boost/scoped_array.hpp> #include <vector> using namespace std; const int gSize = 100; int main(){ typedef vector<int> vt; typedef boost::scoped_array<int> sa; sa a(new int[gSize]); vt v; v.resize(gSize); for(int i=0;i<gSize;i++){ a[i] = rand(); v[i] = a[i]; } return 0; }
*1:前にもやった覚えがあるがhttp://d.hatena.ne.jp/studiokingyo/20040916