C++

C++のstreamの転送速度を調べる

C++

はじめに C++のstreamはとても良くできていて、これを用いたライブラリを作りたいのだけど、 本当に(主にパフォーマンス的な理由で)大丈夫なのとかそういう話。 初めにお断りしておきますが、以下の内容はすべてlinux+gcc4.3での話です。 streamは遅い ふつ…

演算子 ?=

C++

C++暦7年の私ですが、この度新しい演算子を覚えました。 ?= です。 これはそれぞれ、 a if (b<a) a=b; a>?=a; => if (b>a) a=b;あたりの意味のようだ。 ようだ、というのも、この演算子、どこにも載っていません。 最近のC++の仕様にあるものなのか、GCCの拡張なのか。 </a)>…

About Haskell について。

久しぶりにこのページをみた。 Haskellの利点として短いクイックソートが例に挙げられていた。 昔はふむふむと読んでいたのだが、今読んでみると 若干の違和感を感じた。 それというのは、Cで書かれたクイックソートのほうだ。 たしかに例に挙げられているC…

複素数による平面幾何プログラミング

C++

ICPCが近いので、ライブラリを作らないといかん…。 というわけで、平面幾何。 平面幾何を扱うのにcomplexを使うのはもはや常識(?) なのかもしれないが、そこをちょっとおさらいしてみることにする。 最初このテクニックを見たとき、 自分でstruct point{ int…

超賢いポインタ

C++

前口上 C++ではメモリを自分で管理しなければならない。 オブジェクトのライフタイムが単純に決められない場合、 いつオブジェクトを削除するのかを決めるのが難しく、 結局自前でGCのようなものを作ることになってしまう。 (…まあ、そこまであれなケースは…

超賢いポインタ

C++

愚痴を書いていたら長くなったので、 本題のこちらは明日分にでも書くことにする。

汎用オセロサーバ

なぜかここでオセロ。 ここ一週間ほど断続的に作っていました。 名目はオセロサーバ。 Haskellでのネットワークプログラミング練習など。 結果は思ったより良好です。 概要 ネットワーク越しにオセロの対戦を実現するプロトコルの実装。 実装は、かなり趣味…

なぜ、C言語にはgotoが必要なのか?

(注:以下の文章において、C言語とはC/C++をさすものとお考えください) gotoは今から30年以上も前のダイクストラ先生による撲滅運動の 甲斐もあってかどうなのか、今日では良くないものの代名詞のように なっている。良くないということの主な理由はプログラ…

計算機科学実験及び演習4

なんだかとてつもなく私事で恐縮なのだが…。 後期の実験、前半はパターン処理、CG、記号処理、並列計算、の四択のところ、 どれも捨てがたくて大変悩んだ。悩んだけど、CGにすることにした。 CGはポリゴンのレンラダを実装するだけだけど、幾何はちょっと苦…

フィボナッチ in L

10689番が英文が短かったので解いてみた。 昨日のに比べて簡単過ぎたかもしらん… 解いてる人も多いし。 問題はf(0)=a,f(1)=b,f(n)=f(n-1)+f(n-2)の漸化式で定められる 数列fの何番目かを求めるというもの。 初期値a,bで生成される数列のn番目,下位m桁を出力…

parser combinator in C++ (parser その3)

買って登録したはいいがほとんど使っていなかったVS.net。 C++使うときもg++使っちゃったりして、もう散々な扱いだったのだが、 g++のエラーメッセージが訳わからんかったので VC++に頑張ってもらった。 とりあえず今回は息抜き+ネタ企画。(ネタ企画はいつも…