タグ

C++とprogrammingに関するhamu-techのブックマーク (7)

  • std::mapの使い方

    Collada読み込みにおいて、stlのmapを使ったほうがよさそうな場面に出くわしたので、使い方をチェック。キーはstd::stringが手っ取り早そう。要素の挿入・参照方法は、イテレータを使用しないシンプルなものを採用した。 #include <iostream> #include <string> #include <map> using namespace std; int main(int argc, char **argv) { map<string, int> tbl; // 挿入 tbl["hoge"] = 0; tbl["piyo"] = 10; tbl["fuga"] = 20; // 参照 cout << tbl["hoge"] << endl; cout << tbl["piyo"] << endl; cout << tbl["fuga"] << endl; ret

  • プログラミング :: 高速なプログラムを書く為に :: 初めに

    注意 この文章は自分で色々調べながら生半可の理解で書いた物であり、 信用出来ない部分が沢山あります。 何やら、変な宗教を流行らせるなという注意を受けてしまいました → の虫: いまだに変な宗教が流行っている。 (しかし、内部向けに書いた物を、よく見てくれる人がいる物だ。 御免なさい…詳しい人は見ないと思って、調子に乗って、適当な事を偉そうに書いちゃってますが…。) とはいえど、勉強になるのでありがたいです。 何か間違っている事があったら、直接連絡もして頂けると尚嬉しいです。 (或いは、コメント欄とかを用意した方が良いのかなあ。) 後、受けたコメントについて調べたりした内容も載せておく事にします → 初めに (コメントに対し)。 GPGPU について書こうと思ったのですが、それよりも先に、 高速なプログラムを書くに当たって注意するべき一般的な事を述べておいた方が良い様に思ったので、 「高速

  • omakeでC++プログラムをコンパイルする覚え書き - tuedaの日記

    omakeがなかなか良さそうなので試しに使ってみながらTIPSを書いていく。 ホームページはここ。 http://omake.metaprl.org/index.html makeの何が悪いか 複数のディレクトリをまたぐプロジェクトで死ねる とにかく使いにくい! コンパイラに渡しているオプションが不明瞭 当に-DOPTIMZE=SIMDでコンパイルしたか!? 依存関係の解析がアホ そのままだとヘッダーの修正を検出してくれない。いきおい念のためmake clean連発 omakeの何が良いか? どこからでもomakeできる OMakerootのあるディレクトリの下なら、どこからでもomakeできる 依存関係の解析が強力 何もしなくてもヘッダーファイルの修正を検出する インクリメンタルなコンパイル デーモンモードというのがあって常駐しつつファイルの変更を検出して自動でコンパイルが走る。これは

  • 2012-06-09

    C#, C++, Objective-Cのラムダ(匿名関数)の基的な使い方の覚え書きと、JavaSE7時点のラムダ相当のイディオムについての雑記。 (※ プログラムの作用に主眼を置いて、単純に、Lambda ≒ Closure ≒ Block ≒ 匿名関数 という認識で書いてます。) C#4.0のラムダの使い方 C#には、C#1.0のもとより関数ポインタ的なdelegateという言語的な仕組みがあって、 それに乗っかる形でC#4.0よりラムダがサポートされた。 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ClosureCs { class Program { static void Main(string[] args) { // C#4.0

    2012-06-09
  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

    OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
  • gdb の使い方・デバッグ方法まとめ

    たとえば、変数 var の値を2進数で表示したい場合は、次のように指定します。 (gdb) p/t var 一覧表示 whatis 変数の型を調べる。 info b 今設定しているブレークポイントの一覧を表示 セグメントフォルトをした後に利用すれば、どの関数で発生したか確認できます。 info stack 関数の呼び出しスタックの一覧を表示 info Thread 存在しているスレッドの一覧を表示 異なるアドレスにおける処理継続 以下のコマンドを使用することで、ユーザが選択したアドレスにおいて実行を継続させることができます jump linespec linespecで指定される行において、実行を再開 jump *address addressで指定されるアドレスにある命令から、実行を再開 アドレスが分かっている場合のメモリリーク出力 xはhexの意味です。 (gdb) p (char*)

    gdb の使い方・デバッグ方法まとめ
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 1