-
C++でのコピーアンドスワップイディオム
割り当ては、オブジェクトの古い状態を破棄し、そのオブジェクトの新しい状態を構築する2つのステップで構成されます。デストラクタは最初のステップに使用され、コピーコンストラクタは2番目のステップを実行します。 これらの両方を実装するのは簡単です。ただし、割り当て演算子をオーバーロードすると、実装が非常に困難になる可能性があります。コピーとスワピディオムは同じソリューションです。 このイディオムは、コピーコンストラクターを使用してデータのローカルコピーを作成します。次に、スワップ機能を使用して古いデータを新しいデータとスワップします。次に、デストラクタを使用して一時コピーが破棄されます。最終的に
-
Linuxでのゾンビと孤立したプロセス
ゾンビ、孤立、デーモンのプロセスの詳細は次のとおりです ゾンビプロセス ゾンビプロセスは、実行が完了したが、プロセステーブルにエントリが残っているプロセスです。親プロセスは引き続き子プロセスの終了ステータスを読み取る必要があるため、ゾンビプロセスは通常子プロセスに対して発生します。待機システム呼び出しを使用してこれが行われると、ゾンビプロセスはプロセステーブルから削除されます。これは、ゾンビプロセスの刈り取りとして知られています。 ゾンビプロセスの作成と終了を示す図を次のように示します ゾンビプロセスはシステムリソースを使用しませんが、プロセスIDは保持します。ゾンビプロセスが多数
-
C++でのラムダ式
C ++ STLには、std::for_eachのような便利なジェネリック関数が含まれています。残念ながら、特に適用したいファンクターが特定の機能に固有である場合は、使用するのが非常に面倒になる可能性があります。したがって、作成するこの関数は、その1つの場所で使用されている名前空間に含まれます。これに対する解決策は、無名関数を使用することです。 C++ではC++11にラムダ式が導入され、無名関数を作成できるようになりました。たとえば、 例 #include<iostream> #include<vector> #include <algorithm> //
-
C ++のfabs()
CまたはC++ライブラリ関数doublefabs(double x)は、xの絶対値を返します。 x−これは浮動小数点値です。この関数はxの絶対値を返します。以下はfabs()関数の宣言です。 double fabs(double x) 次の例は、fabs()関数の使用法を示しています。 例 #include <iostream> #include <cmath> using namespace std; int main () { int a, b; a = 1234; b = -344;
-
二分木がBSTであるかどうかをチェックするC++プログラム
二分探索木は、3つのプロパティを持つ二分木データ構造です- ノードの二分探索木の左側のサブツリーには、ノードのキーよりも小さいキーを持つノードのみが含まれています。 二分探索木ノードの右側のサブツリーには、ノードのキーよりも大きいキーを持つノードのみが含まれています。 サブツリーの左右もそれぞれ二分探索木である必要があります。 アルゴリズム Begin function BSTUtill() If node is equals to NULL then  
-
C++でのアーリーバインディングとレイトバインディング
このセクションでは、C++でのアーリーバインディングとレイトバインディングについて説明します。バインディングとは、識別子をアドレスに変換するプロセスを意味します。各変数と関数に対して、このバインディングが行われます。関数の場合、呼び出しをコンパイラーによる正しい関数定義と照合します。バインドは、コンパイル時または実行時に行われます。 アーリーバインディング これはコンパイル時のポリモーフィズムです。ここでは、アドレスを関数呼び出しに直接関連付けます。関数のオーバーロードの場合、これは早期バインディングの例です。 例 #include<iostream> using namespa
-
与えられたツリーが二分探索木であるかどうかをチェックするC++プログラム
二分探索木は、3つのプロパティを持つ二分木データ構造です ノードの二分探索木の左側のサブツリーには、ノードのキーよりも小さいキーを持つノードのみが含まれています。 二分探索木ノードの右側のサブツリーには、ノードのキーよりも大きいキーを持つノードのみが含まれています。 サブツリーの左右のツリーも、それぞれ二分探索木である必要があります。 アルゴリズム Begin function BSTUtill() If node is equals to NULL then &
-
システム時刻をC++で出力
C ++標準ライブラリは、適切な日付型を提供していません。 C ++は、日付と時刻を操作するための構造体と関数をCから継承します。日付と時刻に関連する関数と構造体にアクセスするには、C++プログラムにヘッダーファイルをインクルードする必要があります。 時間に関連するタイプには、clock_t、time_t、size_t、およびtmの4つがあります。タイプ(clock_t、size_t、time_t)は、システムの時刻と日付をある種の整数として表すことができます。 構造体タイプtmは、次の要素を持つC構造体の形式で日付と時刻を保持します- struct tm { i
-
入力二分木が二分木のサブツリーであるかどうかをチェックするC++プログラム
二分木は、各ノードに最大2つの子があり、左の子と右の子として定義されるツリーデータ構造です。 アルゴリズム Begin function identical(): Take two nodes r1 and r2 as parameter. If r1 and r2 is NULL then Return true. If r1 or r2 is NULL then
-
C++でのマルチスレッド
マルチスレッドはマルチタスクの特殊な形式であり、マルチタスクはコンピューターが2つ以上のプログラムを同時に実行できるようにする機能です。一般に、マルチタスクには、プロセスベースとスレッドベースの2種類があります。 プロセスベースのマルチタスクは、プログラムの同時実行を処理します。スレッドベースのマルチタスクは、同じプログラムの一部の同時実行を処理します。 マルチスレッドプログラムには、同時に実行できる2つ以上の部分が含まれています。このようなプログラムの各部分はスレッドと呼ばれ、各スレッドは個別の実行パスを定義します。 C ++には、マルチスレッドアプリケーションの組み込みサポートは含ま
-
接尾辞式の式ツリーを構築するC++プログラム
式ツリーは基本的に、式を表すために使用される二分木です。式ツリーでは、ノードは演算子に対応し、各リーフノードはオペランドに対応します。これは、インオーダー、プレオーダー、およびポストオーダートラバーサルで後置式の式ツリーを構築するためのC++プログラムです。 アルゴリズム Begin Function r() has a character variable as parameter. If the characters are + or - or * or / then
-
exp()関数C ++
C / C++ライブラリ関数doubleexp(double x)は、eのx乗の値を返します。以下はexp()関数の宣言です。 double exp(double x) パラメータは浮動小数点値です。そして、この関数はxの指数値を返します。 例 #include <iostream> #include <cmath> using namespace std; int main () { double x = 0; cout << "The exponential value of "
-
二分木で最も深い左葉を見つけるためのC++プログラム
左の子と右の子として指定された、最大2つの子を持つ二分木。これは、二分木で最も深い左葉を見つけるためのC++プログラムです アルゴリズム Begin. function deepestLLeafutil() find the deepest left leaf in a given binary tree: lvel is level of current node. maxlvel is pointer to the dee
-
C ++のlog()関数
C / C++ライブラリ関数doublelog(double x)は、xの自然対数(baseelogarithm)を返します。以下はlog()関数の宣言です。 double log(double x) パラメータは浮動小数点値です。そして、この関数はxの自然対数を返します。 例 #include <iostream> #include <cmath> using namespace std; int main () { double x, ret; x = 2.7; /* finding l
-
C++のmemset
このセクションでは、C ++でのmemset()関数の目的を確認します。この関数は、文字の値を符号なし文字に変換し、指定されたstr[]が指すオブジェクトの最初のn文字のそれぞれにコピーします。 nが文字列サイズより大きい場合、未定義になります。 memset()関数の構文 void* memset( void* str, int c, size_t n); この例では、1つの文字列を使用してから、各文字を長さnまでの他の文字に変換します。 例 #include<bits/stdc++.h> using namespace std; int main() { &n
-
二分探索木で最も低い共通祖先を見つけるためのC++プログラム
左の子と右の子として指定された、最大2つの子を持つ二分木。これは、バイナリツリーで最も低い共通の祖先を見つけるためのC++プログラムです。 アルゴリズム Begin Create a structure n to declare data d, a left child pointer l and a right child pointer r. Create a function to create newnode. Call a function LCA() to Find lowest common ancestor in a binary tree: &nbs
-
ユーザー定義のサイズのC++の2Dベクトル
ベクトルのベクトルは2Dベクトルと呼ばれます。 アルゴリズム Begin Declare a variable v to the 2D vector type. Initialize values to the vector v. Print “the 2D vector is:”. for (int i = 0; i < v.size(); i++) for (int j = 0; j < v[i].size()
-
C ++のdiv()関数
C / C++ライブラリ関数div_tdiv(int numer、int denom)は、numer(numerator)をdenom(分母)で除算します。以下はdiv()関数の宣言です。 div_t div(int numer, int denom) パラメータは分子と分母です。この関数は、2つのメンバーを持つで定義された構造体の値を返します。 div_t:intquot;の場合intrem; 例 #include <iostream> #include <cstdlib> using namespace std; int main () { &nb
-
与えられた二分木で最大の独立集合(LIS)のサイズを見つけるためのC++プログラム
これは、与えられた二分木で最大の独立集合(LIS)のサイズを見つけるためのC++プログラムです。 アルゴリズム Begin. Create a structure n to declare data d, a left child pointer l and a right child pointer r. Call a function max() to return maximum between two integers. Create a function LIS() to return the size o
-
C++でメインが空または空白の「HelloWorld」を印刷する
この問題では、「Hello World」をコンソールに出力する方法を確認しますが、main関数には何も書き込むことができません。 この問題は、2つの異なる方法で解決できます。最初のアプローチでは、グローバル変数を作成し、次にprintf()関数の戻り値をその変数に格納します。 printf()を実行すると、出力されます。理解を深めるためにコードを参照してください。 例 #include<iostream> using namespace std; int a = printf("Hello World"); int main() { } 出力 Hello Wo