C++0xになると、C++03でごちゃごちゃした部分がだいぶ すっきり書けるようになるので、C++0xでの入門はこんな感じになるよー、 という気持ちで書きました。 1. Hello World C++0xでの入出力には、IOStreamというものを使用します。 <<演算子でどんどんつないでいきます。 以下のプログラムの読み方は 「標準出力(cout)に"Hello World"という文字列と、改行(endl)を出力する」 です。 #include <iostream> int main() { std::cout << "Hello World" << std::endl; return 0; } Hello World coutとendlを使用するには、 #include <iostream> のように、という標準ライブラリのファイルを読み込む必要があります。 2. コメント 行コメント
を作りました。 http://github.com/tanakh/cmdline 何か コマンドライン引き数の解析を助けるライブラリです。同じ目的のライブラリに、Cの標準関数であるgetoptやgoogleのgflagsなどがありますが、cmdlineは適当に使えてそこそこ便利というのを目指しています。getoptは使いにくいし、usageも自分で書く必要がある。gflagsはライブラリをインストールしたり、リンクしたりちょっと大掛かり。cmdlineは、1ヘッダファイルで、コピーするだけで使えて、修正BSDライセンスで公開しているので、自由にプログラムに取り込んでいただけます。 コードサンプル #include "cmdline.h" int main(int argc, char *argv[]) { cmdline::parser p; p.add("hoge", 'h', "hog
フルタイムで働きはじめて4ヶ月。 いろんなことがありました。 今日はインターンが来ているということもあり日頃のC++コーディングライフの中で大変重用しているツールを紹介します。といってもどれも有名なツールでググれば解説がでてくるとは思いますので、一言ずつだけ紹介してみます。みなさんも何かよさげなライブラリ・ツールがありましたら教えてください。 - valgrind/callgrind/cachegrind プログラムの実行結果を解析するツール群。まぁ、王道であえて紹介する必要はないかもしいませんが.。valgrindはプログラムのどこかでメモリが漏れているかどうかのチェックに使います.コードのどの部分で確保した領域がどこで漏れているかまで追跡することができます valgrind --leak-check=full command プログラムのどのが計算量的にボトルネックになっているかを調べ
Information 2013/12/25 書籍『プログラミングの魔導書 Vol.3』の発売 (書籍版の予約受付は終了しました) 2013/12/03 書籍『プログラミングの魔導書 Vol.3』の予約受付開始 2011/12/01 ブログを開始 2011/11/30 著者からの指摘を受け、書籍 『プログラミングの魔導書 Vol.2』PDF版を改訂 2011/11/02 書籍 『プログラミングの魔導書 Vol.2』の壁紙公開 2011/10/05 書籍 『プログラミングの魔導書 Vol.2』を発売 (書籍版の予約受付は終了しました) 2011/9/15 書籍 『プログラミングの魔導書 Vol.2』の予約受付開始 技術トレーニングサービスを開始 2010/8/07 書籍 『プログラミングの魔導書 Vol.1』を販売開始 2010/6/01 書籍情報を公開しました 2010/2/28 今年5月
まだC, C++がないようなので書いてみた。主にLinux(DebianとかUbuntu)での環境構築について。 コンパイラ まずはapt-getでコンパイラをインストールする。UbuntuやDebianなら以下のコマンドでgccやg++および標準ライブラリ等がインストールされる。 $ sudo apt-get install build-essential デバッグツール デバッガおよびデバッグツールは少なくとも以下の三つは入れる。(あとltraceも欲しいかな?) GDB 言わずと知れたGNUのデバッガ Valgrind メモリリークや不正メモリアクセスの検出 strace システムコールのトレース $ sudo apt-get install gdb valgrind strace ビルドツール C, C++のビルドツールといえばまずmakeが浮かぶけど、最近ではSConsやCMak
C++とはできるだけ離れた人生を送りたいと願ってきた。しかし、なかなかそうもいかず、最近はだんだんとC++の知識を学びつつある。今更C++を勉強するなんてちょっと出遅れすぎてるんじゃないかという気もするが、もうすぐ新規格であるC++0xもリリースされるはずであるし、意外とC++を学ぶにはいいタイミングかもしれない。 プログラムの品質はエラー処理をどこまで丁寧に書くかで決まる。エラー処理の書き方には、 エラーコードを返す(エラーコードを返せるように設計しておく) エラー時に例外を投げる の2種類があるが、今悩んでいるのはそのC++の例外についてである。 例えば、機械学習のツールを書くことを考える。このようなツールではデータをパースする部分を書く必要が出てくるだろう。1行に1つのデータが以下のような形式で書かれているものをパースしたい。 1 2:1 4:2 5:1 このデータをパースするコード
With the exceptions noted below, this work is licensed under a Creative Commons Attribution - NonCommercial - NoDerivatives 4.0 International License. Visit https://creativecommons.org/licenses/by-nc-nd/4.0/deed.en to view a copy of the full license. Exceptions: The Boost C++ logo is the property of the Boost C++ developers and is used here with their permission. With the exception of the Boost C+
c/c++ で mysql のデータベースへアクセスする方法をまとめます。 rubyやphpと比べるとc/c++でのコーディングはかなり面倒ですが、うまく記述できればパフォーマンスがかなり向上できるようです。 参考URL http://dev.mysql.com/doc/refman/5.5/en/c.html c/c++でsqliteを使う方法 - ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き - DBへの接続 #include <mysql.h> MYSQL mysql; mysql = mysql_init(NULL); if (NULL==mysql) { // 初期化失敗 } const char *hostname = NULL; const char *username = "user"; const char *password = "pass"; const
google ime (mozc)のソースコードが公開されました。 http://code.google.com/p/mozc/ http://codezine.jp/article/detail/5174 http://googlejapan.blogspot.com/2010/05/google_10.html なんで、早速ソースコードを探検してみた。 google のスーパーハカーはどういう楽しいコードを書いているのか興味津々です。 #まだすべてのソースコードに目を通していないです。 1.CallOnce という CASで実装された楽しい関数 base/mutex.cc に、 CallOnce という 大変ユニークな関数があります。 void CallOnce(once_t *once, void (*func)()) { if (once == NULL || func == NU
この文書について † この文書では,gcc を利用している場合に C,C++ において 2GB よりも大きなサイズのファイルにアクセスするための方法を説明しています. この文書を記述するために,以下の文書を参照しました. http://www.ece.utexas.edu/~luo/linux_lfs.html http://www.turbolinux.co.jp/world/library/features/SoftwareDesign/200401/AMD64/64bit-ch3a-2.html ↑ プログラミング/C,C++/2GBより大きなファイルの扱い † とりあえず訳しておきます. IA-32 アーキテクチャでは,メモリアドレス幅が 32 ビットであるため,Linux/x86 で扱えるファイルのサイズは 2GB に制限されていることが多いです.しかしながら,Large Fil
Visual Studio 2005 Express プログラミング Microsoft が無料で配布している開発環境。これで 誰でも無料で Windows アプリケーションが開発できる。 C++ も C# も使える。素晴らしい。 Visual Studio 2005 Express のインストール Microsoft から以下のものが無料でダウンロードできる。 Microsoft Visual Studio 2005 Express: コンパイラ、開発環境、IDE など Microsoft Platform SDK: Windows のアプリケーションを開発するための ライブラリやヘッダファイルなど インストール 上記の製品をMicrosoftのWebサイトからダウンロードして、インストール。 インストールはインストーラがやってくれる。仮に以下のディレクトリに インストールしたとする。
類似画像検索システムを作ろう(2009/10/3) 3日で作る高速特定物体認識システム(2009/10/18) に続くOpenCVプロジェクト第三弾です。今回は、上の二つをふまえてカラーヒストグラムではなく、局所特徴量(SIFTやSURF)を用いた類似画像検索を試してみます。局所特徴量はグレースケール画像から抽出するため、カラーヒストグラムと違って色は見ていません。画像の模様(テクスチャ)で類似性を判定します。 実験環境は、Windows 7、MinGW C++コンパイラ、OpenCV2.0、Python 2.5です。EclipseでMinGWを使う方法はEclipseでOpenCV(2009/10/16)を参照してください。Visual C++にはないディレクトリスキャン関数を一部使っているのでVisual C++を使う場合は、少しだけ修正が必要です。 Bag-of-Visual Wor
最近 C++/CLI を弄っているのですが,GUI 以外の部分は通常の C++ で記述しているので,どうしても System::String^ と std::string (, or std::wstring) の相互変換が必要になります.ぐぐって見たところ同様の要望は多いようで,各所で解決方法も記載されていました.それで,せっかくなので System::String^ <-> std::string をキャストに見せかけた関数を作成しておくことにしました. #include <string> #include <vcclr.h> /* ----------------------------------------------------------------- */ // string_converter /* ------------------------------------
質問 2008年9月17日水曜日 17:27 VS2008 standard で C++ のターミナルアプリケーションを作成しようと project を作成しました。 Math.Abs() を使いたいと思い using System; を宣言したところ error C2871: 'System' : この名前を指定された名前空間は存在しません。 と出たのでエラー番号から検索しましたが、具体的に VS2008 から何を追加してやれば良い のか調べきれませんでした。 ... #include <complex> ... using std; using System; ... int ConvergenceTest_A(complex<double> z){ double re,im,temp; int value = 0; re = z.real(); im = z.imag(); temp
文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++ Ruby, Python, JavaScript, Perl, C++ の文字列操作の比較表を作りました。配列操作の比較表の続編です。間違いなどがあったらご指摘いただけると助かります。 Ruby (String) Python (str) JavaScript (String) Perl C++ (std::string)
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く