
競プロのための標準 C++
◆ 内容 競技プログラミングで知っておきたい C++ 標準機能を解説します。競技プログラミング独特のハックやスタイル(<bits/stdc++.h>, 大きな配列、using namespace std 等)を避け、一般の C++ ソフトウェア開発でも通用するコードを心がけています。 ◆ ライセンス 記事中のソースコードは CC0 1.0(パブリックドメイン相当)です。自由に利用・改変・再配布できます。 ◆ C++ バージョン C++20 / C++23(AtCoder と同じ gcc 12.2) ◆ 対象読者 ・競技プログラミングの上達のために C++ の機能を深く学びたい方 ・コンテスト中に参照できる C++ ドキュメントを探している方 APG4b や市販の入門書で C++ を学んだ人にとって有益な内容から書き進めています。将来はより幅広い内容を扱います。 ◆ 本書へのご意見・ご提案 https://github.com/Reputeless/Zenn.Public/issues 全編無料公開ですが、購入してくれると筆が進みます。これまで 40 名以上の方が購入してくれました。ありがとうございます。 ◆ 著者の記事 『ゲーム開発者のための C++11〜C++20』(共著) https://zenn.dev/tetsurom/books/cpp11-cpp20-for-game-developers 『ゲーム開発者のための C++17〜C++23』(共著) https://zenn.dev/tetsurom/books/cpp17-cpp23-for-game-developers 『冒険で学ぶ はじめてのプログラミング』(技術評論社) https://gihyo.jp/book/2018/978-4-7741-9918-4
main 関数
コメント
識別子
auto
標準入出力
std::set
std::fill()
std::iota()
std::to_string()
std::stoi(), std::stoll(), std::stoull()
std::string [🟢C++20 対応]
std::vector [🟢C++20 対応]
<numeric> [🟢C++20 対応]
<unordered_set> [🟢C++20 対応]
<algorithm> [🟢C++20 対応]
<tuple>
基数変換
グリッド上の幅優先探索
トポロジカルソート(Kahn のアルゴリズム)
Union-Find
重み付き Union-Find
最小全域木 / 最大全域木
最長増加部分列 (LIS)
Binary Indexed Tree (BIT)
ベルマンフォード法
ワーシャルフロイド法
ダイクストラ法
本書の執筆を応援する
<ios>, <iomanip>
(古い記事)<string> ユーティリティ関数
(古い記事、C++17 以前)<algorithm>
Siv3D 作者 / C++17 入門書『冒険で学ぶ はじめてのプログラミング』 (技術評論社) / 未踏ジュニア メンター / セキュリティ・キャンプ講師 / C++ プログラミング講座・プライベートレッスン・技術相談は http://ryo-suzuki-contact.github.io
- 公開
- 文章量
- 約400,955字
- 価格
- 1,000円