掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
一番早い整数管理の方法 (ID:59720)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
# MFCのコンテナを使わなくても良い場合のご参考として。 すでに出現した値かどうかをチェックするために、配列とは別にsetを用意す るのはどうでしょう。 set内の要素は2分木で探索されますから、一般的には配列内の探索より速い はずです。 setへの要素挿入+探索のコストと配列内を探索するコストの比較になります が数が大きくなればなるほどトータルでは前者の方が低くなると思われます。 測ってみないと確実なことは言えないですが。 // お試し #include <vector> #include <set> #include <cstdlib> #include <iostream> int main() { std::vector< int > coll; std::set< int > checker; // 既出値チェック用セット for( int i = 0; i < 100; ++i ){ int val = std::rand() % 100; if( checker.insert( val ).second ){ coll.push_back( val ); } } // 結果を表示してみる for( std::vector< int >::size_type i = 0; i < coll.size(); ++i ){ std::cout << coll[ i ] << " "; } std::cout << std::endl; }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.