タグ

listに関するyowanoのブックマーク (6)

  • 近代的タスクシステムの構築 - やねうらおブログ(移転しました)

    いつかに書こうと思っていたが、多忙につき、を書くどころではない状況なので、内容が風化する前に誰かの参考になればと要点だけでも書き残しておく。 いまの視点(2009年)で見たときに拙著(ASIN:4798006033)にて不足している部分を補足するためのものである。この自体はすでに絶版になりプレミア価格で取引されているが、もし参考文献を探しているなら、出来ればこのは買わずに次に出すゲームプログラミングのほう参考にして欲しい。 ■ タスクシステムの定義 ここで言う「タスクシステム」とは、ゲームプログラミングの教科書に出てくるものである。(cf. 「格的なシューティングゲームを実現するタスクシステム」 http://codezine.jp/article/detail/297?p=1 ) 「タスクシステム」は初期のビデオゲームで、V-SYNCをイベントトリガとして画面を描画するときに

    近代的タスクシステムの構築 - やねうらおブログ(移転しました)
    yowano
    yowano 2013/10/31
    多人数でゲームを開発する場合に便利。高速にしたい場合は、若干メモリ容量を食う。また、最適に実装するためには、C++11等を使いこなす必要があるため、半可通なプログラマでは作りづらい。
  • https://kikairoya.hatenablog.com/entry/20100718/1279465696

    yowano
    yowano 2013/10/23
    基本的にはvectorを選んでもアリ。ただし、中間への挿入やコピーコンストラクタの呼び出しが盛んに行われる場合は、vectorは避けるべき。ソート済みシーケンスを作る時は、是非dequeを使いたい。
  • C++ 高速化 - speedkumoのプログラミング日記

    研究でC++でソフトウェアの開発を行っていますが データ量が少ない場合は速度はあまり、気にしなくていいのですが、 データ量が増えてくると、計算量などを意識して、高速化をする必要性を感じてきました。 自分は実装でSTLのmapやmultimapを使っているのですが、mapの検索の計算量がO(log n),multimapの計算量がO(nlogn)なのでここで、時間をっているのだと考えられます。 そのため、この部分の計算量を減らす方法を検討しました。 まず、STLのmapの計算量がlog(n)なのは、実装に二分木が用いられるためです。そのため、このmapの実装をhashで行ったら高速化されるのではないかと考えました。 詳しい説明は以下 BoostでC++0xのライブラリ「TR1」を先取りしよう (5) (1/2):CodeZine(コードジン) そこで、調べていくと、boostで計算量がO(

    C++ 高速化 - speedkumoのプログラミング日記
    yowano
    yowano 2013/09/05
    mapでは遅いと感じた時には、boostのunordered_mapがおすすめ。listのオーバーヘッドが大きいと感じた時には、C++0xに含まれるforward_listがおすすめ。
  • 基本 その2『ListとVectorの違い』 - Atsushiのプログラム日記

    その2では『ListとVectorの違い』についてです。 この二つは同じ様に使われていますが、 使用用途を間違えると無駄な処理が発生する事が有ります。 vectorは使ってるけどlistは使ってないって方もいらっしゃるのでは? 自分自身vector有ればよくね?とか考えてました。 しかし、仕組みを知ると愚かさに気づきます。 まずすごく簡単なListの使用例 #include #include #include int main() { std::list list_val; list_val.push_back(10); list_val.push_back(20); for each(int val in list_val) std::cout << val << std::endl; return 0; } 出力: 10 20 当にvectorとlistってかき方似てるなぁ…。 さて

    基本 その2『ListとVectorの違い』 - Atsushiのプログラム日記
    yowano
    yowano 2013/09/05
    ランダムアクセスはvectorが速くて、挿入・削除はlistが速い理由を、具体的に、分かりやすくまとめた記事。
  • vector, list, set, dequeのパフォーマンスを実験したよ - nursの日記

    やあ子供たち。今日はSTLのstd::⇒ vector, list, set, dequeのパフォーマンス測定の実験をしたよ。以下のようなコードだ。試してみてくれ。 #include <iostream> #include <vector> #include <list> #include <algorithm> #include <ctime> #include <set> #include <deque> using namespace std; #define N 1000000 #define P 400000 class less_than_4000 { public: bool operator()( int i ){ return i<P; } }; int main( int argc, char* argv[] ) { vector< int > vec; list< i

    vector, list, set, dequeのパフォーマンスを実験したよ - nursの日記
    yowano
    yowano 2013/09/05
    全体的にvectorが速いため、どのSTLコンテナを使っても実装できるという場合は、vectorが良いだろう、という結論。
  • その12 イテレート中のSTLのlistから要素を安全に削除する方法

    ホーム < ゲームつくろー! < Programming TIPs編 その12 イテレート中のSTLのlistから要素を安全に削除する方法 STLのコンテナは「イテレータ」によって要素を取り出します。この時良くあるのが「ある要素をチェックして、必要が無くなった場合はリストから削除する」という作業です。例えば描画オブジェクトのリストからもういらなくなったオブジェクトを除く時などこの作業が必要になります。 イテレート中のリストから要素を除く場合、ちょっと注意しないと思わぬバグが誘発します。この章ではイテレート中のリストから要素を除く方法をまとめます。まさにTIPsです(^-^;。 ① まともにやるとあっさりバグ 例として、int型のリストに0~9までの要素がこの順番で登録されているとしましょう。このリストをイテレートして「5」を取り除きたいとして、次のようなコードを書きました:

    yowano
    yowano 2013/07/08
    単純に『MyList.erase(it);』とやらずに、『it = MyList.erase(it);』として戻り値ゲット。その後にcontinueでi++せずにループの最初に戻ると、上手くいく。
  • 1