-
文字列照合のためのBitapアルゴリズムを実装するC++プログラム
これは、文字列照合用のBitapアルゴリズムを実装するためのC++プログラムです。アルゴリズムは、特定のテキストに特定のパターンと「ほぼ等しい」サブストリングが含まれているかどうかを示します。ここで、おおよその等式はレーベンシュタイン距離で定義されます。サブストリングとパターンが互いに特定の距離k内にある場合は、それらが等しいアルゴリズム。まず、パターンの要素ごとに1ビットを含むビットマスクのセットを事前に計算します。そのため、ほとんどの作業をビット単位の演算で実行できます。これは非常に高速です。 アルゴリズム Begin Take the string and pa
-
短いテキストサイズの文字列検索アルゴリズムを実装するC++プログラム
このC++プログラムでは、入力としてテキストとパターンが与えられます。出力として、パターンがテキスト内で検索され、パターンのすべてのインスタンスが指定されます。 アルゴリズム Begin Take the string and pattern as input. Declare the original and duplicate array with their size. Put the lengths of original and duplicate in len_ori and len_dupli. &nb
-
2つのスタックを使用してキューを実装するC++プログラム
スタック 挿入と削除が同じ端、上から行われるLIFOとして実装されるスタック。最後に入力した要素が最初に削除されます。 スタック操作は- プッシュ(intデータ) −上部への挿入 int pop() −上からの削除 キュー 挿入が一方の端(後部)で行われ、削除がもう一方の端(前部)から行われるFIFOとして実装されるキュー。入力した最初の要素が最初に削除されます。 キュー操作は- EnQueue(intデータ) −後端への挿入 int DeQueue() −フロントエンドからの削除 これは、2つのスタックを使用してキューを実装するためのC++プログラムです。 機
-
cout <<endl vs cout <<“ \ n” in C ++
このセクションでは、C++でのcout<
-
2つのキューを使用してスタックを実装するC++プログラム
スタック 挿入と削除が同じ端、上から行われるLIFOとして実装されるスタック。最後に入力した要素が最初に削除されます。 スタック操作は- プッシュ(intデータ) −上部への挿入 int pop() −上からの削除 キュー 挿入が一方の端(後部)で行われ、削除がもう一方の端(前部)から行われるFIFOとして実装されるキュー。入力した最初の要素が最初に削除されます。 キュー操作は- EnQueue(intデータ) −後端への挿入 int DeQueue() −フロントエンドからの削除 これは、2つのキューを使用してスタックを実装するC++プログラムです アルゴリズ
-
デキューを実装するC++プログラム
デキューまたは両端キューは、キューデータ構造の一般化されたバージョンであり、両端で挿入と削除が可能です。 デキューの基本的な操作には、次のようなものがあります- insert_at_beg() : デキューの先頭にアイテムを挿入します。 insert_at_end() : デキューの後ろにアイテムを挿入します。 delete_fr_beg() : デキューの前からアイテムを削除します。 delete_fr_rear() : デキューの後ろからアイテムを削除します。 以下は、デキューを実装するためのC++プログラムです アルゴリズム Begin De
-
C ++のfread()関数
C / C++ライブラリ関数size_tfread(void * ptr、size_t size、size_t nmemb、FILE * stream)は、指定されたストリームから、ptrが指す配列にデータを読み取ります。以下はfread()関数の宣言です。 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) 次の表には、fread()のパラメーターと説明が含まれています。 パラメータ 説明 ptr これは、最小サイズが size * nmembのメモリブロックへのポインタです。 バイト。 サ
-
キューを実装するC++プログラム
キュー 挿入が一方の端(後部)で行われ、削除がもう一方の端(前部)から行われるFIFOとして実装されるキュー。入力した最初の要素が最初に削除されます。 キュー操作は- EnQueue(int data)-リアエンドでの挿入 int DeQueue()-フロントエンドからの削除 これは、配列を使用してキューを実装するためのC++プログラムです。 アルゴリズム Begin function Enqueue() to insert elements in queue: If queue is completely fill
-
Warshallのアルゴリズムを使用して推移閉包を構築するC++プログラム
有向グラフが指定されている場合は、指定されたグラフのすべての頂点ペア(i、j)について、頂点jが別の頂点iから到達可能かどうかを判断します。到達可能とは、頂点iからjへのパスがあることを意味します。この到達可能性マトリックスは、グラフの推移閉包と呼ばれます。 Warshallアルゴリズムは、特定のグラフGの推移閉包を見つけるために一般的に使用されます。これは、このアルゴリズムを実装するためのC++プログラムです。 アルゴリズム Begin 1.Take maximum number of nodes as input. 2.For Label
-
C++を使用して楕円の領域を見つけるプログラム
ここでは、C++を使用して楕円の面積を取得する方法を説明します。楕円にはさまざまな部分があります。これらは以下のようなものです。 キーポイント 説明 センター 楕円の中心。また、2つの焦点を結ぶ線分の中心でもあります。 主軸 楕円の最長直径 nmemb これは要素の数であり、各要素のサイズはサイズです。 バイト。 短軸 楕円の最小直径 コード tを指す線分 フォーカス 図で示されている2つのポイント ロータス直腸 蓮の直腸は、焦点を通り、楕円の主軸に垂直な線です。 楕円の面積はΠ𝜋 ∗𝑎a∗b𝑏 サンプルコード #include <iostre
-
最近傍アルゴリズムを実装するためのC++プログラム
これは、巡回セールスマン問題を実装するために使用される最近傍アルゴリズムを実装するC ++プログラムであり、エッジを1回だけ通過することで、すべてのノードにアクセスするために必要な最小コストを計算します。 必要な関数と擬似コード アルゴリズム Begin Initialize c = 0, cost = 1000; Initialize g[][]. function swap() is used to swap two values x and y. function cal_sum()
-
最近傍アルゴリズムを使用して巡回セールスマン問題を実装するC++プログラム
これは、最近傍アルゴリズムを使用して巡回セールスマン問題を実装するためのC++プログラムです。 必要な関数と擬似コード アルゴリズム Begin Initialize c = 0, cost = 1000; Initialize g[][]. function swap() is used to swap two values x and y. function cal_sum() to calculate the cost which take array a[] and size of
-
C++の純粋仮想関数と抽象クラス
純粋仮想関数はC++の仮想関数であり、関数定義を記述する必要はなく、宣言するだけで済みます。宣言に0を割り当てることで宣言されます。 抽象クラスは、少なくとも1つの純粋仮想関数を持つC++のクラスです。 抽象クラスは、純粋仮想関数とともに通常の関数と変数を持つことができます。 抽象クラスをインスタンス化することはできませんが、抽象クラスタイプのポインターと参照を作成できます。 抽象クラスは主にアップキャスティングに使用されるため、その派生クラスはそのインターフェイスを使用できます。 抽象クラスに派生クラスがある場合は、すべての純粋仮想関数を実装する必要があります。そう
-
C ++の仮想基本クラスとは何ですか?
仮想基本クラスは、派生クラスに基本クラスの複数のコピーがある場合に使用されます。 サンプルコード #include <iostream> using namespace std; class B { public: int b; }; class D1 : public B { public: int d1; }; class D2 : public B { public: int d2; }; class D3 : public D1, public D2 { publi
-
C ++の純粋仮想関数が0で初期化されるのはなぜですか?
これは単なる構文であり、「関数は純粋仮想である」と言っているだけです。 純粋仮想関数は、C ++の仮想関数であり、関数定義を記述する必要はなく、宣言するだけで済みます。宣言に0を割り当てることで宣言されます。 これは、C++プログラムの純粋仮想関数の例です サンプルコード #include<iostream> using namespace std; class B { public: virtual void s() = 0; // Pure Virtual Function }; class D:public B { p
-
C ++で純粋な仮想デストラクタが必要なのはなぜですか?
C++プログラムで純粋な仮想デストラクタを許可しても悪影響はありません。基本クラスのデストラクタの前に派生クラスのデストラクタが最初に呼び出されるため、純粋な仮想デストラクタの関数本体を提供する必要があります。したがって、関数本体を指定しないと、オブジェクトの破棄中に呼び出されるものが見つからず、エラーが発生します。 。定義を使用して純粋な仮想デストラクタを作成することで、抽象クラスを簡単に作成できます。 サンプルコード #include <iostream> using namespace std; class B { public: virtual
-
C++とJavaのデフォルトの仮想動作
C ++では、メソッドはデフォルトで非仮想です。仮想キーワードを使用して仮想機能にすることができます。 サンプルコード #include <iostream> using namespace std; class B { public: void s() //non virtual by default. Use virtual before the function to print “In Derived” { cout<<" In Base \n"; &
-
C++の可変個引数関数テンプレート
C ++の可変個引数関数テンプレートは、複数の引数を取ることができる関数です。 構文 template(typename arg, typename... args) return_type function_name(arg var1, args... var2) サンプルコード #include <iostream> using namespace std; void show() //base case. { cout << "I am now empty"; } template <typename T, t
-
C++でのテンプレートメタプログラミング
テンプレートを使用してコンパイル時に計算を行うプログラムを作成する場合、これはテンプレートメタプログラミングと呼ばれます。 サンプルコード #include <iostream> using namespace std; template<int n>struct power { enum { value = 4*power<n-1>::value }; }; template<>struct power<0> { enum { value = 1 }; }; int main
-
線に対する点の位置を見つけるために上記のテストを適用するC++プログラム
これは、線に対する点の位置を見つけるために、上から下へのテストを適用するC++プログラムです。平面上の任意の点t(xt、yt)について、mとnを結ぶ線Lに対するその位置は、スカラーs −を計算することによって求められます。 Y = A xt + B yt + C Y 0の場合、tは反時計回りの半平面上にあります。 Y =0の場合、tはLにあります。 アルゴリズム Begin Take the points as input. For generating equation of the line, generate random numb