競技プログラミングの環境について

競技プログラミングでは, 主にはC++やPythonが用いられます.

本講義ではC++を扱います.

なぜC++?

C++には以下の利点があります

  • 動作が早い
  • 便利な関数ライブラリ(機能)がある
  • 比較的競技プログラミングを行う分には扱いやすい
  • 動作が早い

正直、一番の利点は早いということです.

以下は下記の問題を解いた際のJavaとの実行速度の比較です

https://atcoder.jp/contests/abc001/tasks/abc001_1

!image.png

(Javaが遅いのは他の要因もありますが)70倍ぐらい違うことが分かります.

競技プログラミングとは関係ないですが, 言語ごとの特徴や性質が異なるため, 複数の言語を使い分けることがあります

C++とJavaの言語比較をいかに述べておきます

C++

  • 早い
  • 標準ライブラリがそこそこ強い
  • 早い
  • 開発しようとするとライブラリがぶつかる
  • パッケージマネージャーが弱い
  • Javaみたいに使いやすいフレームワークが少ない
  • 高速動作する

Java

  • 標準ライブラリが強い
  • 強力なフレームワークが存在
    • 開発はやりやすい
  • どの環境でも結果が変わらない
  • メモリ管理の必要がない

C++環境構築

(多分入ってると思う)

以下のコマンドをWSL環境のプロンプトで打ってみてください

g++ --version

このコマンドを打った際に, 下記のコマンドが入っていれば大丈夫です

$ g++ --version
g++ (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0
Copyright (C) 2023 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

このように, バージョン確認コマンドを打って, バージョンが確認できれば正常に環境が入ったんだなと判断する手法は良く使うので覚えておいてください

もし, command not found みたいなエラーが発生したら, 下記のコマンドを入力し, 環境をインストールしてください.

sudo apt install build-essential

ファイル作成・プログラム実行

Java講座でも触れたと思いますが,

以下のようなコマンドを用いて, フォルダとファイルを作れます. また, ファイル階層の遷移ができます.

mkdir <フォルダ名>
cd <遷移したいフォルダ名>
touch <ファイル名>