タグ

c++に関するkompiroのブックマーク (2)

  • C++の設計と進化(D&E) レバレッジメモ 1 - 西尾泰和のはてなダイアリー

    どこにどの話題が書かれていたかすぐに探せるようにレバレッジメモを作ろうとしたがさすがに一気に作るのは無理だった…C++の話になる前に力尽きた。ふー、これでやっと1/4くらいかー。次回はC++の章からやる。 ~第0章 ある人はD&Eを単なる歴史書と呼んだが…C++がなぜこのようにあるのかを理解することはプログラマがそれを使いこなすことを助ける。道具に対する深い理解は専門的な熟練工にはべからざるものである。 Simulaの最も初期の段階からコンテナは押し付けがましかった。Objectのようなクラスから派生していないと格納できなかった。intなどの基型は入れられなかった。取り出すときにはObject型になってしまいキャストが必要だった。配列はユーザ定義型を格納できず、参照のみを格納できる。Smalltalk, Java, C#も同様の問題を抱えている。 STLのコンテナはとても不恰好に見えたが

    C++の設計と進化(D&E) レバレッジメモ 1 - 西尾泰和のはてなダイアリー
    kompiro
    kompiro 2011/02/15
  • Spaghetti Source - ワイルドカードつきマッチング

    説明 任意の1文字にマッチする記号 ? と,任意の 0 文字以上にマッチする記号 * を許したとき,text と pattern が同一であるかどうかを判定する. text の任意の場所に pattern が入ることは,"*pattern*" という文字列でマッチングを取ればよい. 使い方 bool match(char *text, char *pattern) 文字列 text が pattern にマッチするかどうかを返す. ソースコード bool match(char *text, char *pattern) { switch (*pattern) { case '\0': return !*text; case '*' : return match(text, pattern+1) || *text && match(text+1, pattern); case '?' : r

  • 1