2008-05-01から1ヶ月間の記事一覧

書籍とインデント

大きめのコードが本の中でページをまたがって載る場合、改ページによって中途半端なところでコードが分断されると次のページの先頭でインデントがどのレベルにあるかわからなくなる。これってインデントの深さが意味を持つ言語の場合は結構致命的だと思うん…

文字列処理の性能に関する考察

行数の数え方 - Days on the Moonたいへん興味深い結果。いろいろ気になったので、もう少し突っ込んで実験してみました。 実験 1Mバイトの文字列で2通り試してみました。(単位はミリ秒) (A)1000文字ごとに改行 (B)1文字ごとに改行 charAt 2167 2195 Array 16…

ISO-2022-JPを扱う際の注意

ISO-2022-JP(いわゆるJIS)で書かれたファイルから特定の文字列を検索する、というのはそれほど簡単な話ではありません。単純に部分一致するバイト列を探すだけではできないからです。ISO-2022-JPという文字コードは、エスケープシーケンスによって文字セット…

「string=文字列」になったのはいつなのか?

今でこそ当たり前のようにcharの列をstringと呼びますが、よく考えると変な文化だなぁと思います。stringという用語はどこが発祥なんでしょうか。だって紐だよ? 紐に文字とか書かないよね?"バイト列"を"byte string" と呼ぶのはギリギリ理解できるので、こ…

文字リテラルの型

C++

C と C++ で文字リテラルにつく型が異なります。 C では int, C++ では char になるようです。 $ cat clit.c #include <stdio.h> int main() { printf("%u\n", sizeof 'x'); return 0; } $ gcc clit.c && ./a.out 4 $ g++ clit.c && ./a.out 1このことについて考察し</stdio.h>…

リストと配列

Python のリストって、実装は配列ベースだろうとは思っていたのですが、今日 arrayモジュールというのを見つけて、実はリストは単純な配列とは違う賢いデータ構造だったりするのか! と一瞬期待に胸をときめかせてしまいました。で、実際どうなのかというと …