2011-01-01から1年間の記事一覧

Boostの数学関数

この記事はBoost Advent Calendar 2011の参加記事です。Boostの数学ライブラリの一部を紹介したいと思います。複素関数としての逆三角関数・逆双曲線関数C99の逆三角関数・逆双曲線関数を移植したものです。C++11に追加されたので、そのうち新規には使われな…

C++11の数学関数

この記事はC++11 Advent Calendar 2011の参加記事です。(書きかけ)C++11には、C99の数学関数や浮動小数点数を扱う関数が追加されました。追加された関数のうち便利なものをいくつか紹介したいと思います。C99との相違点今回紹介する関数はC99由来のもので…

HomebrewでMacにGCC 4.6を入れる

最近MacBook Airを買いました。なかなか快適です。ただ、期待していたのと違いデフォルトではGCCが入っていない。Xcodeというものを入れるとGCCも入るらしいことを知って、Xcodeを入れましたが入ったのはGCC 4.2.1。これではとても辛いので、Homebrewを使っ…

GCCでBoostをC++11用にビルドする

BoostにはC++11対応がなされており、ヘッダーオンリーライブラリなら g++ -std=c++0x source.cc とするだけで使うことができます。*1しかし、ビルドが必要なライブラリの場合には落とし穴があります。ライブラリを、bjamを使って通常の手順で生成した場合、-…

C++03とC++11の互換性についての補足

id:melponさんがC++03とC++11の互換性について書かれました。ぜひ読むべきだと思います。当該記事のコメント欄で指摘されてますが、n3291*1のC.1に書かれている部分が抜けているので補足します。C.1にはC言語からの変更について書かれており、C++03では変更…

C++で40バイトのHello Worldを書いた

Hello Worldはプログラミング言語の入門書でおなじみのプログラムで、入力を受け付けず、"Hello, world!"を出力するプログラムです。Hello Worldを、C++で40バイトのものを書きました。 main(){__builtin_puts("Hello, world!");} これだけではよくわからな…

PFIサマーインターン2011問題

PFIという検索エンジンのベンチャー企業でインターンシップの募集があったようです。その選考過程で次のような問題*1が出たそうです。 長さnの文字列中で出現回数が最大の文字をO(n)時間で答えるプログラムを書いてください。但し、出現回数が最大の文字の出…