タグ

mapに関するyowanoのブックマーク (4)

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

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

    近代的タスクシステムの構築 - やねうらおブログ(移転しました)
    yowano
    yowano 2013/10/31
    多人数でゲームを開発する場合に便利。高速にしたい場合は、若干メモリ容量を食う。また、最適に実装するためには、C++11等を使いこなす必要があるため、半可通なプログラマでは作りづらい。
  • 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がおすすめ。
  • C++, STL: 基礎的な覚え書き(サンプルソース)

    /* キーをカテゴリとして、複数の要素(配列)を持つmapオブジェクトを作る */ #include <iostream> #include <vector> #include <map> #include <string> using namespace std; /* 複数の要素を指定された区切り文字で連結した */ /* 文字オブジェクトを返す */ string join(vector<string> &v, char *delim) { string out; vector<string>::iterator ite = v.begin(); for(; ite != v.end(); ite++) { out.append(*ite); if((ite + 1) != v.end()) out.append(delim); } return out; } int main()

    yowano
    yowano 2013/09/02
    キーをカテゴリとして、複数の要素(配列)を持つmapオブジェクトを作る
  • 相互の関係性をうまくモデリングする : あんちょこ

    さてさて、std::mapの解説も終わったところで命の双方向の関係性について書こう。前回はポインタで相互に連結しようとして問題にぶち当たった。今回は総当り表のような構造をclassの外部に持たせることを考えてみよう。 まずは関係を表すRelationshipクラスを定義する。 //Relationship.hpp #ifndef INC_RELATIONSHIP_HPP #define INC_RELATIONSHIP_HPP #include <map> #include <string> #include "Person.hpp" enum Relation{ None, Friend, Teacher, Student }; std::string toStr(Relation); class Relationship{ public: void registerRelation(

    相互の関係性をうまくモデリングする : あんちょこ
  • 1