Humanity

Edit the world by your favorite way

C++

typenameはいつ要るのか

C++

たまたま以前のつぶやき見つけたので... 書かないと忘れそうなので... Togetter使いたいのに使えないってか(ずっと前から)ログインできないので... boost::result_of::type /* == int */ i = (&digit_to_int)('6') // ってtypenameつけないでいいのかな? ht…

std::istreamからstd::stringへの変換

C++

istreambuf_iterator使えば簡単。 追記: 上の記事と比較してC++だけsyntax highlightついてなくて不憫だったのでリネームした

マージソート in C++

C++

genericなの書いてなかったし書く気もない

C++で挿入ソート

C++

追記: 考えてみればrotate()でもダメで、ようは要素を挿入/削除されちゃうとダメなのでswap()していけばいいはず。たぶん。 mattnさんにiter_swap()っての教えてもらったのでそれ使った。 ふと書いてみたらC++で挿入ソートのやり方がわからなくて、 なぜかっ…

C++の魔導書買った

C++

PDF版買った人へ なんかGMailだと十中八九迷惑メールに振り分けられてるそうなので 「longgate in:anywhere」で探すといいですよ。 レビューとか Delicious 本は 20日以降に発送されるとかされないとか ここの情報は全てtwitterで聞いたりブログで聞いたりし…

shrink to fitとrvalue

C++

コンテナが要素のために確保してるサイズをきっちり現在のサイズ分だけにすることをshrink to fitとか言う。 std::vector v; //... たくさんの push_back と、たくさんの v に対する削除 //その結果、v のサイズは小さいが、容量は大きい。 std::vector(v).s…

C++でrealloc()

あれ?C++でrealloc()的なことってどうやるんだっけ。placement new? http://twitter.com/tyru/status/5978939028 用意されてない。 vectorのように勝手に縮小/増大してくれるコンテナを使えということらしい。 おそらくどうしてもmalloc()/realloc()/free()…

rvalue reference - 続き

C++

珍しく続いた!ということでhitoさんのこのエントリ読んだまとめとか。感想とか。 std::moveというテンプレート関数の実態はただのキャスト。実際に「Moveする」のはMoveコンストラクタ。 実際の場面ではMoveコンストラクタの他にMove代入演算子も定義した方…

rvalue referenceむずい

C++

本の虫: rvalue reference 完全解説実はFirefoxにいくつかrvalue referenceの見ようと思って途中でやめたタブがいくつかあるので消化したいと思う。 ...思うんだけどももう祝日は終わってしまったようなのでとりあえずTODOとしてエントリにしてみる。 でも俺…

ι

C++

vectorをそのまま渡したとして、intってどうやったらとれるのか分からない... (要するにvectorだけじゃなくコンテナ全般に対して要素の型を取得したい) 追記:id:faith_and_braveさんが要素の型はvector::value_typeで取れると教えてくださったので書き直し…

^q^o^p^

今更だけどポインタって便利

NULLで何もないことを表せて、その上NULLでない場合には値をも表現することができる。 intでも特定の値をNULLと同じ役割にすればいいけどその値使えなくなっちゃうし。 C++の参照は素晴らしいけど、どうも俺は.よりも->のが好きらしい。 感覚的すぎてイミフ…

MPL!MPL!

C++

最近「ヒープにメモリ領域とって、そのポインタを配列に保存しながら削除/追加されても配列の領域内で頑張ればある程度高速なvectorができるんじゃね?」とか思ってしばらく作った後それがstd::dequeのことだと気付きました。 一気にやる気が失せたのでいつ…