-
C ++のisnormal()
このセクションでは、C ++のisnormal()関数について説明します。この関数はcmathライブラリにあります。この関数は、数値が正常かどうかを確認するために使用されます。非正規と見なされる数値は、ゼロ、無限大、またはNANです。 この関数は、引数としてfloat、double、またはlongdoubleの値を取ります。数値が正常な場合は1を返し、それ以外の場合は0を返します。 例 #include<iostream> #include<cmath> using namespace std; int main() { cout <&
-
いつC++で独自の代入演算子を書くべきですか?
ここでは、C++で独自の代入演算子を作成する必要がある場合を確認します。クラスにポインターがない場合は、代入演算子とコピーコンストラクターを作成する必要はありません。 C ++コンパイラは、クラスごとにコピーコンストラクタと代入演算子を作成します。演算子が十分でない場合は、独自の代入演算子を作成する必要があります。 例 #include<iostream> using namespace std; class MyClass { //no user defined assignment operator or copy constructor is present &
-
C++でのシャッフルとrandom_shuffle
ここでは、C++でのShuffleとrandom_shuffleを確認します。最初にrandom_shuffleを見てみましょう。範囲[左、右)の要素をランダムに再配置するために使用されます。この関数は、各要素の位置をランダムに選択されたいくつかの位置の位置とランダムに交換します。 すべての場合にどの要素が使用されるかを示すために、ランダムジェネレーター関数を提供できます。一部を提供しない場合は、独自のランダムジェネレーター関数を使用します。 例 #include <bits/stdc++.h> using namespace std; int myRandomGenerator
-
C++で関数とプレースホルダーをバインドする
ここでは、C++のBind関数とプレースホルダーを確認します。必要に応じて、一部の機能の操作を操作する必要がある場合があります。いくつかのデフォルトパラメータを使用して、操作の本質を得ることができます。 C ++ 11では、バインド関数と呼ばれる1つの新機能が導入されています。これは、このような操作をより簡単な方法で行うのに役立ちます。これらの機能を使用するには、ヘッダーファイルを使用する必要があります。 プレースホルダーを使用して関数をバインドすると、目的の出力に応じて関数を変更するための位置と引数の数を決定するのに役立ちます。 プレースホルダーは、関数内の値の位置を検出する名前空間で
-
参照の局所性に基づいて検索を実行するC++プログラム
参照の局所性に基づく検索は、データ要素が再割り当てされるメモリアクセスパターンに依存します。 ここでは、線形検索法を使用して要素を検索します。 アルゴリズム Begin int find(int *intarray, int n, int item) intialize comparisons = 0 for i = 0 to n-1 Increase comparisons if(item == intarray[i])  
-
与えられた数のエッジに対してランダムな無向グラフを生成するC++プログラム
これはC++プログラムであり、指定されたエッジ「e」に対して無向ランダムグラフを生成します。このアルゴリズムは基本的に大規模なネットワークに実装され、このアルゴリズムの時間計算量はO(log(n))です。 アルゴリズム Begin Function GenerateRandomGraphs(), has ‘e’ as the number edges in the argument list. Initialize i = 0 while(i < e) &nb
-
STLでLexicoGraphical_Compareを実装するためのC++プログラム
C++関数std::alarmithm ::lexicographical_compare()は、ある範囲が辞書式に別の範囲よりも小さいかどうかをテストします。辞書式比較は、辞書で単語をアルファベット順に並べ替えるために一般的に使用される種類の比較です。 宣言 テンプレート bool lexicographical_compare(InputIterator1 first1、InputIterator1 last1、InputIterator2 first2、InputIterator2 last2); アルゴリズム Begin result = lexico
-
C++でバイナリモードとテキストモードで記述されたファイルの違い
テキストモード バイナリモード テキストモードではさまざまな文字 翻訳が実行されます。 「\r+\f」は「\n」に変換されます バイナリモードでは、このような変換 実行されません。 ファイルに書き込むには: ofstream ofs(“ file.txt”); または ofstream ofs; ofs.open(“ file.txt”); ファイルに書き込むには: ofstream ofs(“ file.txt”、ios ::binary); また ofstream ofs; ofs.open(“ file.txt”、ios ::binary); ファイ
-
C ++でファイルのサイズを取得するにはどうすればよいですか?
C ++でファイルのサイズを取得するには、最初にファイルを開いて最後まで探します。 tell()は、ストリームの現在の位置を示します。これは、ファイル内のバイト数になります。 例 #include<iostream> #include<fstream> using namespace std; int main() { ifstream in_file("a.txt", ios::binary); in_file.seekg(0, ios::end); int file_s
-
C ++でファイルコンテンツをistringstreamに読み込む方法は?
これは、ファイルの内容をC++のisstringstreamに読み込むC++プログラムです。 例 #include <fstream> #include <sstream> #include<iostream> using namespace std; int main() { ifstream is("a.txt", ios::binary ); // get length of file: is.seekg (0, std::ios::end);  
-
C++ifstreamを使用してテキストファイルから整数を読み取ります
これは、C++ifstreamを使用してテキストファイルから整数を読み取る例です。 例 #include <fstream> #include<iostream> using namespace std; int main() { //initialie the array size int arr[30]; ifstream is("a.txt"); int cnt= 0; int x; //
-
インデックスによってC++std ::vector <>から要素を削除しますか?
C ++ std ::vector <>から要素をインデックスで削除するには、次の方法で実行できます- 例 #include<iostream> #include<vector> using namespace std; int main() { vector<int> v; //declare vector //insert elements into vector v.push_back(-10); v.push_back(7); &nb
-
C ++で参照を渡すよりも、ポインターを渡すことの利点はありますか?
ポインタはnullパラメータを受け取ることができますが、参照は受け取ることができません。 「オブジェクトなし」を渡したい場合にのみポインタを使用できます。 ポインタを明示的に渡すことで、オブジェクトが参照によって渡されるのか、呼び出しサイトで値によって渡されるのかを確認できます。 これらは、ポインタによる受け渡しと参照による受け渡しの簡単な例です- ポインタによる受け渡し 例 #include <iostream> using namespace std; void swap(int* a, int* b) { int c = *a; &
-
C++のメンバー関数への関数ポインタ
C ++では、クラスまたは構造体のメンバー関数を処理するときの関数ポインターは、オブジェクトポインターまたはthis呼び出しを使用して呼び出されます。そのクラス(または派生物)のメンバーは、タイプセーフであるため、そのタイプのポインターを使用してのみ呼び出すことができます。 例 #include <iostream> using namespace std; class AB { public: int sub(int a, int b) { re
-
C ++のポインター、スマートポインター、および共有ポインター
ポインタ ポインタは、変数のアドレスを格納するために使用されます。 構文 Type *pointer;」と入力します 初期化 Type *pointer; Pointer = variable name; 機能 ポインタは変数のアドレスを格納するために使用されます。 ポインタにはnull値を割り当てることができます。 ポインタは参照渡しで参照できます。 ポインタには、スタック上に独自のメモリアドレスとサイズがあります。 例 #include <iostream> using namespace std; int main() { // A norma
-
C++でのRAIIとスマートポインタ
C++でのRAII RAII(Resource Acquisition Is Initialization)は、リソースのライフサイクルを制御するC++手法です。これはクラスバリアントであり、オブジェクトの存続期間に関連付けられています。 いくつかのリソースをクラスにカプセル化し、オブジェクトの作成中にコンストラクターによってリソースの割り当てが行われ、オブジェクトの破棄中にデストラクタによってリソースの割り当て解除が行われます。 オブジェクトが存続するまで、リソースは保持されることが保証されています。 例 void file_write { Static mu
-
スコープ解決演算子とC++でのこのポインター
スコープ解決演算子は静的メンバーまたはクラスメンバーにアクセスするために使用されますが、このポインターは、同じ名前のローカル変数がある場合にオブジェクトメンバーにアクセスするために使用されます。 スコープ解決演算子 例 #include<iostream> using namespace std; class AB { static int x; public: // Local parameter 'x' hides class member
-
C ++のポインタと参照パラメータの違いは何ですか?
ポインタ ポインタ変数は、変数のアドレスを格納するために使用されます。 構文 Type *pointer;」と入力します 初期化 Type *pointer; Pointer=variable name; 参照 パラメータが参照として宣言されると、既存のパラメータの代替名になります。 構文 Type &newname=existing name; 初期化 Type &pointer; Pointer=variable name; ポインタと参照パラメータの主な違いは-です。 参照は別の名前の既存の変数を参照するために使用されますが、ポインターは変数のアドレスを格納す
-
C ++で参照によるポインタを渡すのはなぜですか?
ポインターが指しているオブジェクトではなくポインターを変更する必要がある場合は、参照によってポインターを渡します。 参照によってポインタを渡す方法の例を次に示します- 例 #include <iostream> using namespace std; void Decrement( int*& d ) { --d; } int main( void ) { int a = 26; int* ptr = &a; // pointer to pass // pri
-
C ++での適切なスタックとヒープの使用法?
スタック −関数内で宣言されたすべての変数は、スタックからメモリを消費します。したがって、関数内のローカル変数はすべてスタック上に存在します。 ヒープ −これはプログラムの未使用メモリであり、プログラムの実行時にメモリを動的に割り当てるために使用できます。したがって、何かを宣言した関数よりも長く存続させたい場合は、それをヒープに割り当てる必要があります。 例 int main() { int a; //get memory allocated on stack. int *ptr=new int[7]; //memory for 7 int