std::setで非冗長化を図るのはやめよう

本日の格言(俺用の)
冗長性のない、つまり同じ値がダブって入っているということのない、要素の集合を作りたいんなら、冗長なvectorを作ってから、sortして、erase, unique で冗長性を取り除くべし。一度setに詰めてからvectorに戻すなんてことするとメチャメチャ遅いぞ。やってらんないくらい遅いぞ。もったいないぞ。std::setは検索をしたい時のみに、あくまで検索目的で使うものだぞ。

template< class CONT > void pocRemoveRedundancy( CONT& cont )
{
  // コンテナの冗長性を取り除く関数テンプレート
  sort( cont.begin(), cont.end() );
  cont.erase( unique( cont.begin(), cont.end() ), cont.end() );
  return;
}

Effective STL―STLを効果的に使いこなす50の鉄則

Effective STL―STLを効果的に使いこなす50の鉄則

  • 作者: スコットメイヤーズ,Scott Meyers,細谷昭
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2002/01
  • メディア: 単行本
  • 購入: 9人 クリック: 155回
  • この商品を含むブログ (95件) を見る