CV 研究室学部生のための C++ チュートリアル資料

はじめに

情報工学の研究室の学生, 特にコンピュータビジョンを研究しているでは, OpenCV などのライブラリを使う機会が増える. 現在多くのライブラリは, C++ をベースにかかれているため, 使いこなすにはある程度の C++ プログラミング能力が必要である. 例えば OpenCV CookBook の例示コードは, C++ の知識がないと理解は難しい.

しかし, 現実はそんなに甘くなく, 大学では C 言語しか教えていなかったり, 研究室配属の 4 年生となると, 院試や就活, 不慣れな輪講, 卒業研究などで忙しく, 自分で本を読んで勉強するのも難しいという人もいるだろう. 特に, 市販の教科書は C++ の目玉機能であるオブジェクト指向に関する機能の解説にページを割いており, 頑張って読んでみても食傷気味になってしまい, 実際に卒業研究のための実験プログラムを書く上では, あまり恩恵が得られないこともよくある. もちろん知っているに越したことはないのだが.

というわけで, 某石川研究室の学生が, 短期間で最低限のプログラムが書き始められるようになるチュートリアル資料を作成することにした.

内容

この資料は, 以下の点を目標としたものである.

また, この資料は C 言語である程度のプログラムを書くことができる人を対象としている.

資料は, 3 部に分かれていて, それぞれ 1 時間程度で C++ に馴染んでいる者が解説し, 1–2 時間程度の演習を行うことを想定している. また PGM 画像を扱っているので, Linux などの環境で GCC を使うとよい.

注意

資料

ファイルのバージョンはファイル名の末尾の日付です.

タイトルとファイル内容今後の改訂案
Better C としての C++ 入門
  • C から C++ へ移行する際の違い
  • I/O ストリーム
  • string クラス
  • 参照
  • 付録: GCC でコンパイルする方法
ストリームの書式指定のまとめ, string がどんだけ便利かの解説の追加. C++11 とはなにかという説明. size_t を基本的に使うようにする.
良いプログラムの書き方
  • コメント
  • const correctness
  • アサーション
分割コンパイル, Makefile, バージョン管理, テストフレームワークの説明の追加. 中途半端になってる「const の使い方」の改良.
STL 入門
  • 配列の代わりに vector
  • イテレータ
  • アルゴリズム
テンプレートは何かという話を追加. 面倒だったのでとりあえず「難しいよ」って書いてある, 関数を指定したアルゴリズムの使い方の説明改善. 面倒だったので, とりあえず箇条書きして放置しているイテレータのページの改善.

改訂履歴

2012-06-01
とりあえず公開

お問い合わせ先

とりあえずここへ.