C++入門
なぜC++を学ぶのか
ここで学ぶC++は静的型付け言語の一つになります。 C++に限らず、静的型付け言語を学ぶメリットは数多くあります。 静的型付け言語は、プログラムの実行より前のコンパイル時に変数の型が決定されます。 実行より前に型の整合性チェックが入ることで、コンパイルエラーによって型に関するバグを事前に検知することができます。 これは特に、大型のソフトウェアをチームで開発するときに役に立ちます。 また、統合開発環境がプログラムを解析しやすくなり、よりリッチな入力補完が効きます。 そして、一般に静的型付け言語の実行速度は、Pythonのような動的型付け言語の実行速度よりも数倍から数十倍以上高速です。
C++特有の長所も存在します。C++は全ての静的型付け言語を含めても、実行速度が最速な言語だと考えられています。 低レイヤのプログラミングも可能なこともあり、より高速で効率的な演算が求められるアプリケーションの開発において重宝されています。
C++を使っているプロジェクト例
- Tensorflow Google製ニューラルネットワークフレームワーク
- PyTorch Facebook製ニューラルネットワークフレームワーク
- ONNX Runtime Microsoft製ニューラルネットワーク推論ライブラリ
- OpenCV 画像認識ライブラリ
Pythonと科学技術計算
Pythonは人工知能を始めとして多くの科学技術計算分野で幅広く活用されています。 実行速度が遅いのになぜこうした分野で広く活用されているのか疑問に思う方もいるかもしれませんが、それはPythonの科学技術計算ライブラリが、実際には内部がC言語などの他の言語で書かれていたり、BLASやLAPACKのような線形代数演算ライブラリを呼び出したりして高速化されているためです。 実際、Pythonの代表的な科学技術計算ライブラリであるNumPyは、その33%がC言語で書かれています。
事前準備(環境設定)
CLion
C++を始めとする静的型付け言語の開発ではPythonよりも統合開発環境の恩恵に預かれますが、逆に言えば高性能な統合開発環境のサポートなしで開発するのは難しいです。 ここでは、統合開発環境としてCLionを使って開発しますので、MacでもWindowsでもこちらをインストールして下さい。 PyCharmと同じJetBrains社の製品で、使い勝手もほぼ同じになります。
他の選択肢として、Visual Studio Codeや、WindowsであればVisual Studioも有力な選択肢ですが、ここでもクラスプラットフォームであることと、何も設定せずともデフォルトでの使い勝手の良いことからCLionを選択します。
C++文法の学習
C++入門 AtCoder Programming Guide for beginners (APG4b) | AtCoderでC++の基本的な文法について学習しましょう。
演習
Pythonで一度解いた、AtCoder Beginners Selection | AtCoder の問題をC++で解き直してみましょう。
付録
江添亮のC++入門: C++は学習難易度が高いことで有名な言語です。C++のより詳しい入門書としてこちらの書籍をオススメします。