-
C ++のインライン関数の利点は?
C ++インライン関数は、クラスで一般的に使用される強力な概念です。関数がインラインの場合、コンパイラは、コンパイル時に関数が呼び出される各ポイントにその関数のコードのコピーを配置します。 インライン関数を変更すると、コンパイラはすべてのコードをもう一度置き換える必要があるため、関数のすべてのクライアントを再コンパイルする必要があります。そうしないと、古い機能が続行されます。 関数をインライン化するには、関数名の前にキーワードinlineを配置し、関数を呼び出す前に関数を定義します。定義された関数が1行を超える場合、コンパイラはインライン修飾子を無視できます。 クラス定義の関数定義は、イ
-
C ++でdouble(またはfloat)がNaNであるかどうかを確認する
C ++で浮動小数点または倍数がNaN(数値ではない)であるかどうかを確認するには、isnan()関数を使用できます。 isnan()関数はcmathライブラリに存在します。この関数はC++バージョン11で導入されました。したがって、次のC ++ 11から、この関数を使用できます。 例 #include <cmath> #include <iostream> using namespace std; main() { if(isnan(sqrt(30))) { //square root of 30 is a floating point nu
-
C++関数から複数の値を返す
CまたはC++では、関数から直接複数の値を返すことはできません。このセクションでは、いくつかのトリックを使用して関数から複数の値を返す方法を説明します。 「アドレスによる呼び出し」または「参照による呼び出し」と呼ばれるメソッドを使用して、関数から複数の値を返すことができます。呼び出し元関数では、2つの変数を使用して結果を格納し、関数はポインター型のデータを取得します。したがって、データのアドレスを渡す必要があります。 この例では、1つの関数から2つの数値を除算した後、商と余りを返すことができる関数を定義する方法を説明します。 アドレスによる呼び出し 例 #include<iostre
-
C ++でループ内に異なる乱数を生成する方法は?
C++を使用してさまざまな乱数を生成する方法を見てみましょう。ここでは、0からある値の範囲の乱数を生成しています。 (このプログラムでは、最大値は100です。) この操作を実行するために、srand()関数を使用しています。これはC++ライブラリにあります。関数voidsrand(unsigned int seed) 関数randで使用される乱数ジェネレーターをシードします 。 srand()の宣言は以下のようになります- void srand(unsigned int seed) シードと呼ばれるパラメータを取ります。これは、疑似乱数ジェネレーターアルゴリズムによってシードとして使用さ
-
C /C++でのvoidmainとintmainの違い
int main()を使用することもあれば、void main()を使用することもあります。ここで、これら2つの違いは何であるかという疑問が浮かびます。 main()関数は、他の関数と同様です。また、引数を取り、いくつかの値を返します。プログラムはこのmain()関数から実行を開始することを覚えておく必要があります。したがって、オペレーティングシステムはこの関数を呼び出します。 main()から値が返されると、オペレーティングシステムに返されます。 void main()は、main()関数が値を返さないことを示しますが、int main()は、main()が整数型のデータを返すことができ
-
C / C ++を使用してローカルコンピューターのIPアドレスを取得するにはどうすればよいですか?
このセクションでは、ローカルシステムのホスト名とIPアドレスを簡単に確認する方法を説明します。ホスト名とIPを見つけるためのCプログラムを作成します。 以下の関数のいくつかが使用されます。これらの機能には異なるタスクがあります。機能とそのタスクを見てみましょう。 Sr.No 機能と説明 1 gethostname() ローカルコンピュータの標準のホスト名を検索します。 2 gethostbyname() ホストデータベースからホスト名に対応するホスト情報を検索します 3 iten_ntoa() IPv4インターネットネットワーク
-
無向グラフがツリーであるか、DFSを使用していないかを確認するC++プログラム
グラフにサイクルが含まれていない場合、グラフはツリーです。これは、無向グラフがツリーであるかどうかをチェックするC++プログラムです。 アルゴリズム Begin function cyclicUtil() : A) Mark the current node as visited. B) Recur for all the vertices adjacent to this vertex. C) If an adjacent is not visited, then recur for that adjacent.
-
有向グラフがツリーであるか、DFSを使用していないかを確認するC++プログラム
グラフにサイクルが含まれていない場合、グラフはツリーです。これは、有向グラフがツリーであるかどうかをDFSを使用してチェックするC++プログラムです。 アルゴリズム Beginfunction CyclicUtil():a)現在のノードを訪問済みとして再帰スタックの一部としてマークします。b)この頂点に隣接するすべての頂点に対して再帰します。 c)再帰スタックから頂点を削除します。functioncyclic():a)すべての頂点を訪問されておらず、再帰スタックの一部ではないものとしてマークします。b)CyclicUtill()関数を呼び出して、さまざまなツリーのサイクルを検出します。 例
-
線形拡大を見つけることができるように、与えられた閉路グラフのエッジを削除するC++プログラム
このプログラムでは、基本的に、グラフから削除されるとグラフが有向非巡回グラフになるエッジを含むフィードバックアークセットを見つけます。 アルゴリズム Begin function checkCG(int n) : n: number of vertices. arr: struct graph variable. Initialize cnt = 0 and size = (n-1). For i = 0 to n-1 if
-
与えられたグラフGの推移閉包を見つけるためのC++プログラム
有向グラフが指定されている場合は、指定されたグラフのすべての頂点ペア(i、j)について、頂点jが別の頂点iから到達可能かどうかを判断します。到達可能とは、頂点iからjへのパスがあることを意味します。この到達可能性マトリックスは、グラフの推移閉包と呼ばれます。 Warshallアルゴリズムは、特定のグラフGの推移閉包を見つけるために一般的に使用されます。これは、このアルゴリズムを実装するためのC++プログラムです。 アルゴリズム Begin 1. Take maximum number of nodes as input. 2. For Lab
-
2色アルゴリズムを使用してグラフが2部グラフであるかどうかを確認するC++プログラム
2部グラフは、グラフの彩色が2つの色を使用して可能である場合にグラフです。セット内の頂点は同じ色で色付けされます。これは、2色アルゴリズムを使用してグラフが2部グラフであるかどうかを確認するC++プログラムです。 関数と擬似コード Begin 1. Develop function isSafe() to check if the current color assignment is safe for vertex v, i.e. checks whether the edge exists or not. &
-
BFSを使用してグラフが2部グラフであるかどうかを確認するC++プログラム
2部グラフは、グラフの彩色が2つの色を使用して可能である場合にグラフです。セット内の頂点は同じ色で色付けされます。これは、グラフが2部グラフであるかどうかをBFSを使用してチェックするC++プログラムです。 アルゴリズム Begin Function Bipartite(): 1) Assign a color to the source vertex 2) Color all the neighbors with another color except first one color.
-
DFSを使用してグラフが2部グラフであるかどうかを確認するC++プログラム
2部グラフは、グラフの彩色が2つの色を使用して可能である場合にグラフです。セット内の頂点は同じ色で色付けされます。これは、グラフが2部グラフであるかどうかをDFSを使用してチェックするC++プログラムです。 アルゴリズム Begin 1. An array color[] is used to stores 0 or 1 for every node which denotes opposite colors. 2. Call function DFS from any node. 3. If the node w
-
グラフ行列の逆行列を見つけるためのC++プログラム
これは、グラフ行列の逆行列を見つけるためのC++プログラムです。行列の逆行列は、行列が非特異である場合にのみ存在します。つまり、行列式は0であってはなりません。行列の逆行列は多くの方法で見つけることができます。ここでは、随伴行列とその行列式を使用して、グラフ行列の逆行列を見つけます。例に含まれる手順 Begin function INV() to get the inverse of the matrix: Call function DET(). Call function ADJ().
-
有向非巡回グラフのトポロジカルソートを実行するためにDFSを適用するC++プログラム
DAG(有向非巡回グラフ)のトポロジカルソートは、すべての有向エッジuvに対して、頂点uが順序付けでvの前に来るような頂点の線形順序付けです。グラフがDAGでない場合、グラフのトポロジカルソートはできません。 関数と擬似コード Begin function topologicalSort(): a) Mark the current node as visited. b) Recur for all the vertices adjacent to this vertex. c) Push
-
与えられたグラフにハミルトン閉路または経路が存在するかどうかをチェックするC++プログラム
ハミルトン閉路は、ハミルトン経路の最後の頂点から最初の頂点までのエッジ(グラフ内)があるようなハミルトン経路です。無向グラフにあるのは、グラフの各頂点に1回だけアクセスするパスです。 機能と目的: Begin 1.function isSafe() is used to check for whether it is adjacent to the previously added vertex and already not added. 2. function hamiltonianCycle() solves the hamiltoni
-
有向グラフに対して弱く接続されているか強く接続されているかを確認するC++プログラム
特定の有向グラフの弱または強接続は、DFSを使用して見つけることができます。これは、この問題のC++プログラムです。 使用する機能 Begin Function fillorder() = fill stack with all the vertices. a) Mark the current node as visited and print it b) Recur for all the vertices adjacent to this vertex c) All vertices
-
循環グラフのクロマチックインデックスを見つけるためのC++プログラム
彩色指数は、特定のグラフのエッジの彩色に必要な色の最大数です。これは、循環グラフのクロマチックインデックスを見つけるためのC++プログラムです。 アルゴリズム Begin Take the input of the number of vertices ‘n’ and number of edges ‘e’. Take the input of ‘e’ vertex pairs for the ‘e’ edges in the graph in e
-
グラフ内のアーティキュレーションポイントの数を見つけるためのC++プログラム
グラフ内のアーティキュレーションポイント(またはカット頂点)は、グラフを削除する(およびグラフを通るエッジ)場合にグラフを切断するポイントです。切断された無向グラフのアーティキュレーションポイントは、接続されたコンポーネントの数を増やす頂点の削除です。 アルゴリズム Begin We use dfs here to find articulation point: In DFS, a vertex w is articulation point if one of the following two conditions is satisfi
-
グラフ内の2つのノード間のパスを見つけるC++プログラム
このプログラムでは、特定のグラフでDFSを使用して、2つのノード間にパスが存在するかどうかを確認できます。 アルゴリズム Begin function isReach() is a recursive function to check whether d is reachable to s : A) Mark all the vertices as unvisited. B) Mark the current node as visited and enqueue it and it will be used to