桜、抹茶、白、日記

名古屋市在住のC++使いのcoderの日記だったもの。

STLコンテナ

d:id:youandi:20090912#p2
先日のわんくま発表で作成したプログラムなんですが、GeoTIFF画像から取得した高度値(12,967,201個)をvectorコンテナに突っ込んでいます。
実装途中ではlistコンテナを使っていたんですが、STLコンテナのインスタンスの破棄に異様なまでに時間が掛かってしまったので、vectorに変更したのでした。参考までに処理時間を計測。

STLコンテナ 処理時間
vector(reserve()の呼び出し有り) 約2〜3秒
vector(reserve()の呼び出し無し) 約2〜3秒
list 約71秒
deque 約106秒

計測環境はこちら。

個人的には、reserve()の呼び出し有無であまり違いがないのには、ちょっと残念。

http://www.cppll.jp/cppreference/cppvector_details.html#reserve