タグ

C++に関するmyfinderのブックマーク (8)

  • C++ テンプレート引数に応じた場合分け - プログラミングの教科書を置いておくところ

    テンプレート内でのマルチバイト文字とワイド文字の扱いを例に、テンプレート引数に応じた場合分けを実現する方法について説明します テンプレート引数に応じて何か処理を分けたいというときには、その場合分けを別のテンプレートに追い出すことで実現できます テンプレート引数に応じた場合分け 今、Fig.1 のような関数を考えてみましょう Fig.1 #define elementsizeof( a ) sizeof((a)[0]) #define elementsof( a ) (sizeof((a))/elemetsizeof((a))) void debug_dump_vectorA( const std::vector<std::string>& v, int indent = 0 ){ int n = 0; for( std::vector<std::string>::const_iterato

    C++ テンプレート引数に応じた場合分け - プログラミングの教科書を置いておくところ
    myfinder
    myfinder 2011/02/01
  • 開発メモ: 50行のC++コードでWebサーバを実装する

    「Kyoto Tycoonの設計 その四」改め、50行でWebサーバを書く方法を解説する。前回実装した「多重I/Oマルチスレッド汎用TCPサーバ」の上にHTTPの処理を行う層をつけて、「多重I/Oマルチスレッド汎用HTTPサーバ」を司るクラスを実装してみたので、それを使ってちょちょいとやる。 URLクラス HTTPと言えばURLが使えないと意味がない。URLは単なる文字列として扱ってもよいのだが、様々なシーンで分解や加工が必要になり、その処理はなにげに複雑で面倒なので、予めクラスとして導出しておいた方がよいだろう。 class URL { public: // 文字列のURLを解析して内部構造を作る void set_expression(const std::string& expr); // スキーム要素を設定する void set_scheme(const std::string&

  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • プログラムを書こう!

    みなさま こんにちは。ここには、C++Javaなど、プログラミングの入門記事を書いていこうと思っています。 一応、製品版がありますが、ここはもちろん無料です。更新はとてもゆっくりになると思いますが、よろしければ、気長につきあってください。一緒に楽しくプログラミングしていきましょう。 入門記事の読み方 細部にこだわるより、全体の流れを見てください。最初に解説をざっと読んだら、サンプルをコンパイル・実行し、うまくいったら、少しだけ書き換えてまた実行してみてください。書き換えがうまくいったら、わかっていることになるのです。それから、少しゆっくり解説を読んでみてください。 そういう勉強方法を嫌う人がいることも知っています。しかし、「すべてをひとつひとつ理解してから進もう」として身動きが取れなくなってしまう人もたくさんいるのです。20歳頃の私がそうでした。それが、「わかってきたな」、「おもしろい

  • Spaghetti Source - 各種アルゴリズムの C++ による実装

    ACM/ICPC(プログラミングコンテスト)系列の問題を解くことを目標にして,各種アルゴリズムを C++ で実装してみた.極めて意地が悪い類の問題には対応していないし,特定の入力に対して高速に動くということもない.計算量も最良とは限らない. これらを参考にする方への注意とお願い: これらの記述は正確とは限りません.参考文献を参照することを強く推奨します.間違っている場合は是非教えてください. これらのプログラムは間違っているかもしれません.各人で検証することを強く推奨します.バグがあれば是非教えてください. 分類が怪しいので,これはこっちだろう,ということがあればコメントを下さると助かります. 注意! 現在書き換え中 TODO 分類を正しく行う. 全体的に説明と使い方を詳しく. Verify していないものを Verify. ボロノイ図(いつになることやら……) 基 テンプレート グラフ

  • 軽量データクラスタリングツールbayon - mixi engineer blog

    逆転検事を先日クリアして、久しぶりに逆転裁判1〜3をやり直そうか迷い中のfujisawaです。シンプルなデータクラスタリングツールを作成しましたので、そのご紹介をさせていただきます。 クラスタリングとは クラスタリングとは、対象のデータ集合中で似ているもの同士をまとめて、いくつかのグループにデータ集合を分割することです。データマイニングや統計分析などでよく利用され、データ集合の傾向を調べたいときなどに役に立ちます。 例えば下図の例ですと、当初はデータがゴチャゴチャと混ざっていてよく分からなかったのですが、クラスタリングすることで、実際は3つのグループのデータのみから構成されていることが分かります。 様々なクラスタリング手法がこれまでに提案されていますが、有名なところではK-means法などが挙げられます。ここでは詳細については触れませんが、クラスタリングについてより詳しく知りたい方は以下の

    軽量データクラスタリングツールbayon - mixi engineer blog
  • 「C++ は難しいから」と言う定説 - Cube Lilac

    雑記. C++ は難しいから Java から始めた方が・・・ ここ最近(と言うか以前からずっとですが),上記のようなアドバイスを見かける機会が多かったせいか「C++ の何を指して(Java と比べて)難しいと言っているのだろう?」と言う事を単純に疑問に思うようになりました.Java 自体はほとんど使ったことないのですが*1,感想としては「どちらも大して変わらない」と言うものだったので余計に気になっています. 以下,現状で私が「これが要因かなぁ」と思っている事を列挙してみます. C++ には XXX と言うクラス/関数がない 可能性として一番高いのはこれかなぁと思っています.C++ の標準ライブラリは必要最低限のものしか(必要最低限のものさえも?)用意されていないので,他の言語と比べてライブラリの貧弱さは目立ちます.Boost を含めればかなりマシになりますが,それでもキツいかなと言う印象を

    「C++ は難しいから」と言う定説 - Cube Lilac
  • Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!

    kazuhoさんがやってくれました。 ずいぶん前からjsonをC++でパース(SAXじゃなくてDOM)するのに小さいライブラリないかなーと思ってました。個人的にはjson-cというのを使ってたのですが、幾らか気に入らない所があったりビルドが少し手間だったりしていました。STLしか使わなくてvectorとかmapで表現されるツリー構造な物が欲しいなぁって思ってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、githubにあるjsonxxとかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から格的に書き始めてついさっき出来上がりました。速いw 名前はpicojson とても小さく、実装コードだと300数十ステップ程です。しかもヘッダファイルだけなので管理が楽です。 試しにwassrのpubl

    Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!
  • 1