タグ

C++に関するaontのブックマーク (17)

  • Set / Get とプロパティ

    概要 「プロパティ」で説明しているように、 C# にはプロパティという便利な機能が備わっています。 ここでは、その C# が出てくる以前、 C++ ではどうやって実装の隠蔽をしていたかについて説明したいと思います。 (ちょっと記憶があいまいだけど、 確か Effective C++ か More Effective C++ 辺りで読んだ話。) 「C# によるプログラミング入門」では、 名前をあらわす name と、 年齢をあらわす age をメンバーとして持つクラス Person を使って説明をしましたので、 ここでも Person クラスの age を例として説明します。 一番簡単なのは、public にしたいメンバー変数の数だけ、 Set変数名 / Get変数名 という名前のメンバー関数を用意する方法。 age なら、SetAge と GetAge というのを Person クラス内に

    Set / Get とプロパティ
  • AVIファイルの取り扱い方

    AVIファイルはマイクロソフトのRIFFフォーマットによって記述されたムービーファイルである. AVIファイルフォーマットに関してはAVI RIFFファイルのリファレンスを参照のこと. RIFFファイル RIFF ファイルは、RIFF ヘッダーとその後ろに続く 0 個以上のリストとチャンクで構成される. チャンク チャンクは、次のようなフォーマットを持つ。 ckID ckSize ckData ここで、ckID はチャンクに含まれるデータを識別する FOURCC、ckSize は ckData 内のデータ サイズを指定する 4 バイトの値、ckData は 0 バイト以上のデータである。データは常に最も近い WORD 境界まで追加される。ckSize はチャンク内の有効なデータ サイズを指定するが、パディング、ckID のサイズ、ckSize のサイズは含まない。 リスト リストは、

  • この演算子の名前は何です:「-->」ですか? - efreedom

    aont
    aont 2010/11/08
    びっくりした!!w
  • gprof

    コンパイルとリンク時に-pgオプションをつける。 gcc -pg -o test test.c makefileを利用する時には、リンク時のオプションを付け忘れることが多いので注意。 ( -pg を付けて作成した)プログラムを普通に実行する。 プログラムが正常終了すると、 カレントディレクトリに gmon.out というファイルが生成されている。 (Ctrl-Cで止めたり、Segmentation Faultで異常終了した時には gmon.out は生成されないので、注意しよう。) ./test ls -F gmon.out test test.c

    aont
    aont 2010/10/11
    これを使えば最適化がはかどるわけね。
  • dSFMT - toge's diary

    ちょっと試してみた。 1つのランダム値を求める方法だとそんなにはやくない。せいぜい20%程度の高速化。 乱数を一度に配列にとる関数だと100%程度の高速化。 一度に大量の乱数が必要になる場合に使うのならば、使う価値があるかも。 #include "dSFMT.h" #include <boost/random.hpp> unsigned long long int start_; unsigned long long int end_; int main() { dsfmt_t dsfmt; dsfmt_init_gen_rand(&dsfmt, 0); dsfmt_gv_init_gen_rand(0); asm __volatile__ ("rdtsc" : "=A" (start_)); { double value[10000]; dsfmt_gv_fill_array_open_

    dSFMT - toge's diary
    aont
    aont 2010/10/05
    Boostの生成器より速いとのこと。
  • letsboost::regex

    sample サンプルの動作確認バージョン [GCC4.4/1.41.0] [VC9/1.41.0] #include <iostream> #include <string> #include <boost/regex.hpp> using namespace std; int main() { // <で始まって>で終わる文字列にマッチする正規表現で検索 boost::regex r( "<[^>]+>" ); boost::smatch m; string str1 = "The HTML tag <title> means that ..."; if( boost::regex_search(str1, m, r) ) { cout << "found (pos=" << m.position() << ")" << endl; cout << " ==> " << m.str()

  • 研究日誌: MinGWでboost

    2008年3月2日 MinGWでboost boostは次のC++の標準になると言われているC++用ライブラリです. 正規表現など色々なライブラリが揃っていて非常に便利です. インストール方法はこの辺を参照してください.基的にはインクルードパスを通してヘッダファイルをインクルードするだけです. しかしながら,一部ライブラリファイルにリンクを張る必要がある上,そのライブラリファイルは自分で作成する必要があります. というわけで作成メモ. 1.ここからboost_1_34_1.zipとboost-jam-3.1.16-1ntx86.zip,boost-jam-3.1.16をダウンロードしてきて解凍. 2.解凍したboost_1_34_1フォルダに残り2ファイルを解凍した中身をそっくりコピー. 3.コマンドプロンプトでboost_1_34_1に移動して,以下のコマンドを叩く. この際,注意事項

  • Let's Boost - インストール方法

    aont
    aont 2010/10/02
  • http://twitter.com/aont_/status/25031980564

    aont
    aont 2010/09/20
    Windows x64上で Mingw 64bitを使って Eclipse x64 でコンパイルするときの参考
  • C++ Glossary

    このページについて C++関係の話に出てくる言葉で、「読んで字の如し」 とはいかない難解語の簡単な解説を並べてみました。Glossaryというより、 むしろ略語辞典になってしまいました。巷で見かけた単語を並べているだけなので、 実際の所ほとんど使われない略語もあったりするかもしれません。 ちゃんとした用語集は Bjarne Stroustrup's C++ Glossary などをご覧になることをオススメします。 用語集 ADL (Argument Dependent name Lookup) 引数に依存した名前の探索。 Argument Based Lookup, Koenig Lookup とも呼ばれる。 #include <iostream> #include <string> ... std::string s; std::cout << s << std::endl; // os

  • 類似しているプログラミング言語の文法などの比較まとめチートシートが良い感じ - goinger的日記

    以前見つけた資料。そういやそんなんあったなと久々に検索して探すのに少し手間取ったのでメモ 言語の比較対応で文法覚えられそうなんで便利じゃないかなと 参照: Big Script: PHP, Perl, Python, Ruby, Smalltalk http://hyperpolyglot.wikidot.com/scripting Small Script: Bash, Tcl, Lua, Javascript, IO http://hyperpolyglot.wikidot.com/small Platform: C, C++, Objective C, Java, C# http://hyperpolyglot.wikidot.com/platform Lisp: Common Lisp, Scheme, Clojure, Emacs Lisp http://hyperpolyglo

    類似しているプログラミング言語の文法などの比較まとめチートシートが良い感じ - goinger的日記
  • C++の話(本当にあった怖い話)

    The document discusses C++ and its history and features. It describes C++ as an extension of C with object-oriented features like classes. It provides information on the creator of C++, Bjarne Stroustrup, and the evolution of C++ since its introduction as a way to add object-oriented programming to C. It also includes sample C++ code demonstrating the use of arrays and includes from the Boost libr

    C++の話(本当にあった怖い話)
  • C++マニアック,C++言語,STL,sort,ソート,algorithm,アルゴリズム,使い方,pred,predicate,プレディケート,述語

    C++マニアック C++言語,STL,sort,ソート,algorithm,アルゴリズム,使い方,pred,predicate,プレディケート,述語 ページの末尾へ トップページへ sort(ソート) このページでは STL のアルゴリズムである sort の使い方について解説します。 基的な使い方 並べ替えの判断基準を変更する 大小関係の比較について プレディケートのバラエティ 英文字文書を読んで、文字数の頻度順にソートする例 身長や体重など複数の基準でソートする例 基的な使い方 ページの先頭へ sort は、いわゆる並べ替えを行うアルゴリズムです。並べ替えることが出来るのは、通常の配列や、vector などのランダムアクセスイテレータが使えるコンテナの中身と言うことになります。list などは、ランダムアクセスできないので、ソートできませんが、list にはそ

  • 関数へのポインタによるコールバックをインライン化する - Cry's Blog

    関数ポインタとコールバックとインライン化と C++,特にSTLではコールバックにファンクタを使用することが推奨されています.コールバックにファンクタを用いることの利点は大きく次の2つだと思われます. コールバックがインライン化される(ただしあくまで「かも知れない」) 各種のアダプタを適用できる 以下では主に前者について,関数ポインタを用いたコールバックをインライン化できないかを考えます. そもそも,インライン化したい関数というのは短い簡潔な関数のはずで,そういった関数のインライン化のためだけにstructごにょごにょ,operator()うにゃうにゃとやるというのは面倒だなぁ,関数ぺぺっと書きたいな,というモチベーションは十分にありえるかと思われます. さて,関数ポインタ経由での関数呼び出しは通常インライン化されないと考えられます.これは関数ポインタ経由の場合,実行時まで呼び出す関数のアド

    関数へのポインタによるコールバックをインライン化する - Cry's Blog
  • C++0x ラムダ式 - Faith and Brave - C++で遊ぼう

    【2015年12月24日記載 : C++11 ラムダ式の正式なまとめは、こちらのページ「C++11 ラムダ式 - cpprefjp C++語リファレンス」を参照してください】 今まではラムダ式のリビジョンが上がるたびに差分だけ書いてたので C++0xに採択されたラムダ式の解説をあらためて書きます。 【C++03までの問題点】 C++03では、関数をその場で作成する、ということができなかったため 関数を受け取るSTLアルゴリズムを使用する場合、以下のように、アルゴリズムに渡す用の関数を作成しなければなりませんでした。 struct is_even { typedef bool result_type; bool operator()(int x) const { return x % 2 == 0; } }; vector<int> v; find_if(v.begin(), v.end

    C++0x ラムダ式 - Faith and Brave - C++で遊ぼう
  • Java の参照と C++ の参照の違い - Cube Lilac

    kimuraya Javaでは、参照型を引数として渡す時は、C++で言う参照渡しに相当する処理を行っているようだな。そうでないと、Javaの動作は説明出来ない。 bleis @kimuraya よくある勘違いですけど違いますよ。Javaで参照型を引数として渡すときは、意味的にはC++で言うポインタ渡しに近いです。 数日前に関数引数の参照渡しの話が盛り上がっていたのですが,この話は今まで私も混同していました.TL を眺めていた時点では,説明している人達の言ってる事がよく理解できていなかったのですが,後で下記のコードを実行したところ,この時に言われていた事が少し理解できました. class Foo { public Foo(String s) { message = s; } public String toString() { return message; } private String

    Java の参照と C++ の参照の違い - Cube Lilac
    aont
    aont 2010/01/24
    AS3でも同じような議論がある http://bit.ly/4yZshq /要はポインタ値が値渡しされいるということ。/C#は値渡しも参照渡しも明示的に区別して実行出来るよ!
  • C++ における const の重要性と活用 - ニートの世紀

    const なんて知らないよ、という層の人間が一定世の中には存在するようです。 そういった人間の大多数の主張は恐らく「面倒くさい」「嫌い」とかだと思うのですが、const 性に気を配るのは C++ においてはメンバ変数を private にしないといけないことと同程度にやらないといけないことです。という話をします。 const というとまず真っ先に出てくるのは「値が変わらないことでコードが読みやすくなる」とか「参照透明性のため」とかで、参照透明とか言葉がすごく綺麗ですごいって感じだと思います。ボクは参照透明という言葉がすごく好きです。 でも C++ は現実の言語なので現実を見ましょう。そんなのどうだっていいんです。 前提として C++ はそれなりに速い何かを作るための言語である、ソースコードはコメントや何らかの形のドキュメントに勝る、という二点をあげておきます。 例えば巨大なオブジェク

  • 1