目次
1. C++の基本的なヘッダファイル
iostream ヘッダ
C++でプログラムを書く際、最も基本的なヘッダファイルの一つが iostream
です。
#include <iostream>
このヘッダファイルには以下の機能が含まれています:
cout
:標準出力endl
:改行- その他の入出力関連の機能
bits/stdc++.h について
競技プログラミングでよく見かける以下のインクルード文について説明します:
#include <bits/stdc++.h>
これは全てのヘッダファイルをインクルードする便利な方法ですが、以下の理由から実務では非推奨です:
- ビルド時間の増加
- メモリ使用量の増加
- 依存関係の不透明化
2. 名前空間(namespace)の使用
C++では名前の衝突を避けるために名前空間を使用します。標準ライブラリの機能は std
名前空間に属しています。
#include <iostream>
using namespace std; // std名前空間を使用
int main() {
cout << "Hello, World!" << endl; // std::を省略可能
return 0;
}
3. コンパイルと実行
基本的なコンパイルコマンド
g++ main.cpp -o main && ./main
このコマンドの内訳:
g++
:C++コンパイラmain.cpp
:ソースファイル-o main
:出力ファイル名の指定&&
:コマンドの連結./main
:実行
代替的な実行方法
g++ main.cpp && ./a.out
または
g++ main.cpp -o main
./main
4. コンパイルとビルドの違い
コンパイル
- ソースコードを機械語に変換する工程
- 例:
g++ main.cpp
ビルド
- コンパイルとリンクを含む総合的な工程
- 例:
g++ main.cpp -o main
- 以下の工程を含むことがある:
-
- コンパイル
- 依存関係の解決
- リンク
- テスト
- デプロイ
5. 他言語との比較
Go 言語(コンパイル言語)
go run main.go
- コンパイルと実行を 1 つのコマンドで実行可能
Python(インタプリタ言語)
python main.py
- コンパイル不要
- 実行時に逐次解釈
- 必要に応じてバイトコードに変換(.pyc ファイル)
まとめ
C++は強力な言語ですが、コンパイル言語としての特性上、実行までの手順が他の言語と比べて複雑です。しかし、この複雑さは実行時のパフォーマンスという形で還元されます。基本的な開発フローを理解することで、より効率的なプログラミングが可能になります。