2012年12月1日土曜日

std::listとstd::vectorのベンチマーク

isocppのサイトにstd::listとstd::vectorのベンチマークの記事が紹介されていました。
http://www.baptiste-wicht.com/2012/11/cpp-benchmark-vector-vs-list/

作者は実際に測定を行い、こう結論しています。
  1. std::vector is insanely faster than std::list to find an element
  2. std::vector performs always faster than std::list with very small data
  3. std::vector is always faster to push elements at the back than std::list
  4. std::list handles very well large elements, especially for sorting or inserting in the front
そして、実際にコードを書く際の指針を以下のように示しています。
  1. Number crunching: use std::vector
  2. Linear search: use std::vector
  3. Random Insert/Remove: use std::list (if data size very small (< 64B on my computer), use std::vector)
  4. Big data size: use std::list (not if intended for searching)
ここで、crunchingとはソートされたコンテナに乱数を挿入する操作のことです。

0 件のコメント:

コメントを投稿