C++

4.1 配列 -紫帽子のC++

例題 配列の使いどころ 配列の使い方 宣言 要素へのアクセス 要素の書き換え 要素数の指定方法 マクロ宣言 なぜ、変数宣言では要素数の指定ができないか(要検証) 配列とfor文 例題の回答 +α(その他の例題) 2つの配列を操作 例題 5人の生徒がいるクラスでテス…

C++ std::replaceの使い方(vector, 文字列の置換)

C++

参考 例1:vectorの要素を置き換える 例2:文字列の場合 参考 cpprefjp.github.io 例1:vectorの要素を置き換える ソースコードvectorの「1」を「0」に置き換える #include <algorithm> #include <iostream> #include <vector> int main() { std::vector<int> v = { 1, 2 ,3, 1, 2 }; // 1を0に</int></vector></iostream></algorithm>…

3.2 while文 -紫帽子のC++

例題 while文の使い方 実際のプログラムを用いた解説 forとwhileの使い分け 例題の解答 例題 While文を使って1~10までの整数の和を求めるプログラムを作成してください。 while文の使い方 前回は例題についてfor文で作りましたが、今回はwhile文を作って繰り…

C++ 2進数・16進数表示

C++

2進数表示 概要 使用例(128を2進数で表示) Tips:表示する桁数の調整 16進数表示(std::hex) 基本的な使い方 注意点 桁数指定で表示 2進数表示 概要 bitsetを使えばOKです。 bitsetライブラリを用意して、変数xをn桁の二進数で表示したいなら次のように記述し…

3.1 for文 -紫帽子のC++

例題 概要 for文の使い方 実際のプログラムを用いた解説 例題の解答 例題 for文を使って1~10までの整数の和を求めるプログラムを作成してください。 概要 例題は今まで習った文法だけでも解くことができ、 int sum = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10…

2.1 if文(条件分岐) -紫帽子のC++

C++

例題 概要 条件式の記述方法 ある条件を満たすときの処理(if) ifの使い方 ifを使ったサンプルコード(xがyより大きい場合の処理) 2つ目以降の条件(else if) else ifの使い方 注) ifを2つ並べたときの違い else ifを用いたコードの例 いずれの条件も満たさない…

ホーム -紫帽子のC++

1. 超基礎 2. 条件分岐 3. 繰り返し処理 4. 配列 5. 関数 6. アドレスとポインタ 1. 超基礎 標準出力(std::cout) 変数の使い方 標準入力(std::cin) 四則演算 2. 条件分岐 if文 3. 繰り返し処理 for文 while文 4. 配列 5. 関数 6. アドレスとポインタ

1.4 四則演算(整数) -紫帽子のC++

例題 概要 足し算・引き算のやり方 例1:5+4の計算 例2:4-1の計算 例3:変数の足し算・引き算 かけ算のやり方 割り算の計算方法 まとめ 例題の解答 例題 入力x、yを受け取り、四則演算した結果を表示してください。実行例 x = 8[入力] y = 3[入力] x+y = 11…

1.3 標準入力(std::cin) -紫帽子のC++

例題 標準入力とは? 概要 C++における標準入力 入力の方法 プラスα:入力する箇所を分かりやすく 例題の解答 例題 任意の数値xを入力したら、次の画面を出力するようなプログラムを作成してください。 数値xを入力してください:[数値xを入力する] 入力した…

1.2 変数の使い方 -紫帽子のC++

例題 変数とは? 変数の使い方 変数の表示 変数の型(intとは?) 例題の解答例 例題 アリスのテストの点数を日本語・英語・フランス語で表示するサイトあります。 点数は毎朝更新されるので、変数を使い保守性の高いコードを書いてください。 なお、今回は少々…

1.1 標準出力(std::cout) -紫帽子のC++

例題 解説(1):標準出力 標準出力とは? C++における標準出力 解説(2):改行の仕方 概要 std::endlを使う方法 \nを使う方法 例題の解答 例題 以下の文字列を画面に出力してください。 C++は難しい。 でも出来たらカッコイイ 解説(1):標準出力 標準出力とは? …

C++ set 要素の存在確認(find, count, contains)

setにおいて要素の存在を確認する方法について 1. set::containsを使った方法(C++20以降) 2. set::countを使う場合 3. set::findを使う場合 setにおいて要素の存在を確認する方法について キーの存在を確認する方法には主に次の3つの関数を使った方法があり…

C++ vector 条件に一致する要素数(count, count_if)

std::count(一致する要素数を取得) std::countとは? std::countの使用例:vector内の「2」の個数を調べる std::count_if std::count_ifとは? 使用例1:偶数の個数を取得 使用例2:「a」を含む文字列の数を取得 std::count(一致する要素数を取得) std::count…

C++ map for文

各手法の使い分け方 (1) 範囲for文を使う方法 使用例1:全要素の列挙 使用例2:各Valueを-1倍にする (2) イテレータを使った方法 使用例1:全要素の列挙 使用例2:各Valueを2倍する 各手法の使い分け方 C++でのmapに対するforループの方法を3つほど紹介しま…

C++ arrayの使い方(for文、最大・最小値、並び替え、検索など)

C++

arrayとは? 基本機能 宣言と初期化 n番目の値を取得 n番目の値を書き換え 要素数の取得(size()) for文での表示 指定した要素が何番目にあるか? 昇順・降順に並び替え 最大値・最小値の取得 arrayとは? vectorとは異なる固定長の配列。 C言語の配列と似ている…

C++ 3値以上の最大値・最小値

C++

最大値(max) 最小値(min) 最大・最小値を同時に求める(minmax) vectorの最大値・最小値をとる場合 最大値(max) 日本語リファレンス:max - cpprefjp C++日本語リファレンス 3つ以上の変数の最大値をとるには、2値の最大値を求めるmax関数の引数をinitializer…

C++ map キーの存在確認法3選(find, count, contains)

キーの存在を確認する方法について 1. containsを使った方法(C++20以降) 2. countを使う場合 3. findを使う場合 キーの存在を確認する方法について キーの存在を確認する方法には主に次の3つの関数を使った方法があります。 contains(C++20以降) find count …

C++ vector forループ

各手法の使い分け方 (1) sizeを使う方法 (2) 範囲for文を使う方法 使用例1:全要素の列挙 使用例2:各要素を-1倍にする (3) イテレータを使った方法 使用例1:全要素の列挙 使用例2:各要素を3にする 使用例3:findで発見した要素より後ろの要素を列挙 その…

C++ vectorの最大値・最小値(min・max_elementなど)

(1) max_elemnt・min_elementを使った方法 max_elemnt・min_elementとは? 使用例1:最大値・最小値を取得 使用例2:範囲指定で最大値を取得 (2) minmax_elementを使った方法 minmax_elementとは? 使用例:最大値・最小値を取得 (3) std::sortを使った方法 概…

C++ vector 追加と削除(push_back, insert, erase, etc)

一覧 末尾への要素の追加(push_back) n番目に要素を追加(insert) 末尾の削除(pop_back) n番目の要素の削除(erase) 指定した値を削除(std::erase) 一覧 処理 関数 末尾への追加 push_back n番目へ追加 insert 末尾の削除 pop_back n番目の削除 erase 特定の値…

C++ vector 2次元配列

宣言 初期化 (1) 全要素を同じ値で初期化する方法 (2) 指定した要素で初期化する for文でのループ vectorを2次元配列にするときの注意 宣言 std::vector<std::vector<型名>> 変数名; と宣言します。 基本的には、2次元配列の行数と列数(高さと幅)も併せて宣言することが多いの</std::vector<型名>…

C++ dequeの使い方

C++

dequeとは 基本機能 宣言と初期化 要素数の取得 要素へのアクセス(先頭・末尾・任意) for文で全要素を表示 要素の追加(先頭・末尾・任意) 要素の削除(先頭・末尾・任意) dequeとは vectorと似た構造だが、先頭 or 末尾への追加・削除が高速で行えるという特…

C++ 文字が英数字か判定

C++

判定方法一覧 使用例 isdigit(数字かどうか判定) isalpha(英文字どうか判定) isalnum(英文字 or 数字かどうか判定) 判定方法一覧 以下のcharを引数に取る関数を使い、判定を行う。 各関数の詳細はリンクとなっている日本語リファレンスを参考に。 関数名 役…

C++ 関数テンプレートの使い方

C++

関数テンプレートとは? 基本形1(関数の中で任意の型名を使用) 関数テンプレートの宣言 関数テンプレートの呼び出し 実装例 基本形2(引数の型名が任意) 関数テンプレートの宣言 関数テンプレートの呼び出し 実装例 基本形3(返り値の型が任意) 実装例1(2つ以上…

C++ vectorの並び替え(ソート、逆順)

昇順・降順ソート(std::sort) #include <algorithm> をすることでソートを行う関数std::sortを使用できるようになります(公式ドキュメント:sort - cpprefjp C++日本語リファレンス)。 並び替えたいvectorを「v」とすると、昇順・降順ソートは次の処理で実装できます。 </algorithm>…

動的計画法(DP)で最短距離を求める(C++)

最短経路問題について 動的計画法の導入 動的計画法による最短距離の求め方 プログラム実装上の注意 C++での実装例 最短経路問題について 以下の0~6のノードがある経路があります。矢印と数値はノード間の距離を示します(例:ノード0と1の距離は4)。 0から6…

C++ 大文字・小文字判定(islower, isupper)

C++

C++における文字列の大文字・小文字判定の方法をソースコード付きで解説。1文字(char)の場合はislower, isupperを使えば判定できるので、これをforループすることでstringへも適用することができます。

C++ multisetの使い方

C++

multisetとは?(setとの違い) 宣言 for文での表示 要素数の取得(size) 追加(insert) 要素の存在を確かめる(find) 要素の削除(erase) multisetとは?(setとの違い) setと同じ順序付き集合ですが、重複を許すという点でsetと異なります。 基本的な使い方はsetと…

レーベンシュタイン距離(編集距離)を計算(C++)

レーベンシュタイン距離(編集距離)を動的計画法で求める方法を図付きで解説。C++での実装方法も掲載。

C++ vectorの平均(reduce + size)

C++のvectorにおける平均値の求め方を紹介。平均を直接求める関数はありませんが、合計を求める関数reduce/配列サイズで求められます。