パープルハット

※当サイトではGoogleアドセンス広告を利用しています

C++

C++ 配列 条件を満たす要素数(count_if)

C++

count_ifとは? 使用例 (1) 偶数の要素数を取得 (2) 「a」を含む文字列の数を取得 count_ifとは? 配列において指定した条件を満たす要素の個数を取得できる関数です。 参考サイト:count_if - cpprefjp C++日本語リファレンス 引数、返り値を以下に示す。 第…

C++ multisetの使い方

C++

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

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

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

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

C++

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

C++ swap(2値の入れ替え)

C++

C++でstd::swapを使った値の入れ替え方法を紹介。一時変数を使う場合と比較して短く記述することができます。

C++ stringの大文字⇔小文字変換

C++でstringを大文字と小文字との相互変換(例:「TWITTER」と「twitter」)する方法を紹介。for文とtransformを使った方法をサンプルコード付きで紹介。

C++ Pairの使い方

C++

C++におけるPairの使い方をソースコード付きで紹介。setと併用することで、二次元座標の効率よい探索とかもできるなどの例も紹介します。

C++ 順列表示(next_permutation)

C++における順列表示をnext_permutation関数を使って実装します。

C++ 二分探索(lower_bound, upper_bound)

C++におけるlower_bound,、upper_boundを用いた二分探索の方法をソースコード・画像付きで解説。

BFS 経路探索(C++, 競プロ)

BFS(幅優先探索)による経路探索の方法をC++のソースコード付きで紹介。競技プログラミングでもよく出てくるので備忘録としてまとめました。

C++ vectorの最大値・最小値

C++

C++における最大値・最小値の求め方を紹介。max(min)_elementを使った方法とsortにより、先頭・末尾の要素を取り出す方法の2つをソースコード付きで解説します。

C++ stack(スタック)の使い方

C++

C++におけるスタックの使い方を紹介。データの取り出し、格納、読み込み、大きさの取得などをサンプルコードを交えながら紹介。

C++ usingの使い方

C++

C++におけるusingの使い方を紹介。本記事では、namespaceの省略と別名宣言におけるusingの利用方法を紹介します。

C++ for_each_n(使い方、for_eachとの違い)

C++

C++におけるstd::for_each_nの使い方を紹介。for_eachと異なり終端のイテレータではなく、先頭からの要素数を指定するといった特徴があります。

C++ std::transformの使い方

C++

C++でのstd::transformの使い方を紹介します。指定されたイテレータ範囲内のすべての要素に対して関数を適用して、要素を更新させることができます。

C++ 値を指定範囲に収める(clamp)

C++

C++で値を指定範囲に収めることができる関数であるstd::clampを紹介します。

C++ std::for_each(使い方、transformとの違い)

C++

C++でstd::for_eachを使った全要素の更新方法を紹介。transformと異なり、返り値を持たないラムダ式・関数を使います。vectorの全要素を表示する場合などに利用できます。

C++ vectorのコピー(std::copy)

C++

C++でstd::copyを使ったvectorのコピーの方法を紹介します。std::copyを使うことでfor文を使用せずに済むので、コードを短く記述できます。

C++ 2つのvectorが一致するか

C++

作成した関数 使用例 ソースコード 実行結果 作成した関数 //2つのvectorが一致するかどうか判定 template<class T> bool IsOverlapVector(const std::vector<T>& a, const std::vector<T>& b) { //サイズが不一致ならfalseを返す if (a.size() != b.size()) { return false</t></t></class>…

C++ mapの使い方(追加、for文、find、erase、clear)

C++

C++の連想配列mapの使い方の解説。追加、for文、検索、削除など。

C++ クラス③(演算子の利用とcoutでの表示)

C++

四則演算 複合演算子(+=とか) std::coutでの表示 四則演算 friend関数を利用します。 以下では、2次元ベクトルクラス「Vector2」について、ベクトル同士の和と、スカラーとの積を計算できるようにしました。 #pragma once #include <iostream> //クラスの宣言 class Ve</iostream>…

C++ setの使い方(追加・削除、検索、for文など)

C++

C++のsetについてfor文でループ、sizeの取得、要素の追加と削除(insert、erase), 検索(find), 末尾(から2番目)要素のやり方を紹介します。

C++ substrで文字列取り出し

C++

C++におけるstd::stringの使い方を紹介。これを使うことで文字列の一部のみを取り出しすることができます。

C++ 乱数配列の作成

C++

乱数の生成 参考 ソースコード 実行結果 乱数配列の生成 実行結果 重複なしの乱数配列の生成 ソースコード 実行結果 選択肢から作成 概要 ソースコード 実行結果 乱数の生成 参考 こちらのサイトを参考にしました。 色々な乱数が紹介されていましたが、範囲…

C++ クラス(メンバ変数・関数、コンストラクタ)

C++

C++のクラスについて解説します。メンバ関数、コンストラクタなどクラスの基礎をサンプルコードを交えながら説明していきます。

C++ vector(追加、削除、並び替え、2次元など)

C++

基本(1次元配列) 宣言と初期化 大きさの取得 for文での表示 末尾への要素の追加 任意の位置への要素の追加(insert)&削除(erase) 並び替え(sort) 応用例:2次元配列 宣言と初期化 for文でのループ 基本(1次元配列) 宣言と初期化 可変長の1次元配列の宣言は s…

OpenCV C++ ルックアップテーブル(LUT)の使い方

OpenCV(C++)でのルックアップテーブル(LUT)の使い方を解説します。

C++ Eigen 可変長の行列MatrixXd

可変長の行列MatrixXd 基本的な使用方法(宣言、アクセス、表示) サイズの変更(resize) 特殊な初期化方法 可変長の行列MatrixXd Eigen::Matrix<double, M, N> mat; で宣言する場合はMとNは定数でなければならないので#defineで宣言するなどの必要があり、プログラム中で行列</double,>…

C++ Eigen ベクトルと行列(宣言、初期化、サイズの取得、アクセスなど)

ベクトル 宣言 初期化 大きさの取得 要素へのアクセスと変更 演算(加算、減算、乗算、内積) 行列 宣言 初期化 要素へのアクセスと変更 行数、列数の取得 加算、減算、積、乗算 転置と逆行列 行列とベクトルの積 ベクトル 宣言 基本 //int型で3次元のベクトル…