-
C++で*ptr++、* ++ ptr、および++*ptrを比較します
このセクションでは、C++の*ptr ++、* ++ ptr、および++*ptrの違いを確認します。 ここでは、CまたはC++でのpostfix++とprefix++の優先順位を確認します。接頭辞++または--の優先順位は、間接参照演算子「*」よりも優先され、接尾辞++または-は、接頭辞++および間接参照演算子「*」の両方よりも優先されます。 ptrがポインタの場合、* ptr ++は*(ptr ++)を示し、++ * prtは++(* ptr)を参照します サンプルコード #include<iostream> using namespace std; int main()
-
C ++でのぶら下がり、ボイド、ヌル、ワイルドポインタ
ダングリングポインタ ダングリングポインタは、解放(または削除)されたメモリ位置を指すポインタです。ポインタがダングリングポインタとして機能するさまざまな方法があります 関数呼び出し ローカル変数が静的でない場合、ローカル変数を指すポインターはぶら下がります。 int *show(void) { int n = 76; /* ... */ return &n; } 出力 Output of this program will be garbage address. メモリの割り当て解除 int main() { float *p
-
#include <bits / stdc++。h>はC++でどのように機能しますか?
はヘッダーファイルです。このファイルには、すべての標準ライブラリが含まれています。一部のコーディングコンテストでは、解決中に時間を節約する必要がある場合、このヘッダーファイルを使用すると便利です。 ソフトウェアエンジニアリングのアプローチでは、インクルードを最小化する必要があります。このヘッダーファイルを使用すると、多くのファイルが含まれますが、プログラムで必要とされない場合もあります。そのため、コンパイル時間とプログラムサイズが大きくなる可能性があります。このヘッダーファイルの大きな欠点のいくつかを以下に示します- このは、GNUC++ライブラリの標準ヘッダーファイルではありません。
-
C++での基本的な入出力
C ++標準ライブラリは、後続の章で説明する入出力機能の広範なセットを提供します。この章では、C++プログラミングに必要な非常に基本的で最も一般的なI/O操作について説明します。 C ++ I / Oは、バイトのシーケンスであるストリームで発生します。キーボード、ディスクドライブ、ネットワーク接続などのデバイスからメインメモリにバイトが流れる場合、これは入力操作と呼ばれます。 また、バイトがメインメモリからディスプレイ画面、プリンタ、ディスクドライブ、ネットワーク接続などのデバイスに流れる場合、これは出力操作と呼ばれます。 。 標準出力ストリーム(cout) 事前定義されたオブジェクト
-
C++プリプロセッサ
プリプロセッサは、実際のコンパイルが開始される前に情報を前処理するようにコンパイラに指示するディレクティブです。 pすべてのプリプロセッサディレクティブは#で始まり、行のプリプロセッサディレクティブの前に空白文字のみを表示できます。プリプロセッサディレクティブはC++ステートメントではないため、セミコロン(;)で終了しません。 すべての例で#includeディレクティブを見てきました。このマクロは、ヘッダーファイルをソースファイルにインクルードするために使用されます。 C ++でサポートされているプリプロセッサディレクティブには、#include、#define、#if、#else、#l
-
C++での意思決定
意思決定構造では、プログラマーは、プログラムによって評価またはテストされる1つ以上の条件と、条件が真であると判断された場合に実行される1つまたは複数のステートメント、およびオプションで、条件が真である場合に実行される他のステートメントを指定する必要があります。偽であると判断されます。 以下は、ほとんどのプログラミング言語に見られる典型的な意思決定構造の一般的な形式です- If-Elseステートメント ifステートメントの後にオプションのelseステートメントを続けることができます。これは、ブール式がfalseの場合に実行されます。 C++でのif...elseステートメントの構文は-
-
C /C++でifステートメントとelseステートメントの両方を同時に実行します
このセクションでは、CまたはC++コードでifセクションとelseセクションを同時に実行する方法を説明します。この解決策は少し注意が必要です。 ifとelseが次々に実行されると、if-elseが存在しないステートメントを実行するようなものになります。しかし、ここでは、それらが次々に実行される方法が存在するかどうかを確認します。 サンプルコード #include <iostream> using namespace std; int main() { int x = 10; if(x > 5) { &nbs
-
C++での参照
参照変数はエイリアス、つまり既存の変数の別名です。参照が変数で初期化されると、変数名または参照名のいずれかを使用して変数を参照できます。 参照とポインタ 参照はポインタと混同されることがよくありますが、参照とポインタの3つの大きな違いは- NULL参照を持つことはできません。参照が正当なストレージに接続されていると常に想定できる必要があります。 参照がオブジェクトに初期化されると、別のオブジェクトを参照するように変更することはできません。ポインタはいつでも別のオブジェクトにポイントできます。 参照は、作成時に初期化する必要があります。ポインタはいつでも初期化できます。
-
ポインタによる受け渡しとC++での参照による受け渡し
これらは、ポインタによる受け渡しと参照による受け渡しの簡単な例です- ポインタによる受け渡し #include <iostream> using namespace std; void swap(int* a, int* b) { int c = *a; *a= *b; *b = c; } int main() { int m = 7, n = 6; cout << "Before Swap\n"; &nbs
-
C++でのポインタと参照
ポインタ ポインタは、変数のアドレスを格納するために使用されます。 構文 Type *pointer;」と入力します 初期化 Type *pointer; pointer = variable name; 参照 変数が参照として宣言されると、それは既存の変数の代替名になります。 構文 Type &newname = existing name; 初期化 Type &pointer; pointer = variable name; ポインタと参照の主な違いは- 参照は別の名前の既存の変数を参照するために使用されますが、ポインターは変数のアドレスを格納するために使用さ
-
C ++の場合ポインタ変数と参照変数の違いは何ですか?
参照 変数が参照として宣言されると、それは既存の変数の代替名になります。 構文 Type &newname = existing name; 初期化 Type &pointer; pointer = variable name; ポインタ ポインタは、変数のアドレスを格納するために使用されます。 構文 Type *pointer;」と入力します 初期化 Type *pointer; pointer = variable name; 参照とポインタの主な違いは- 参照は別の名前の既存の変数を参照するために使用されますが、ポインターは変数のアドレスを格納するために使用さ
-
バイナリヒープを実装するC++プログラム
バイナリヒープは、最小ヒープまたは最大ヒープのいずれかである完全なバイナリツリーです。最大バイナリヒープでは、ルートのキーは、バイナリヒープに存在するすべてのキーの中で最大である必要があります。このプロパティは、そのバイナリツリー内のすべてのノードに対して再帰的に真である必要があります。最小バイナリヒープはMinHeapに似ています。 機能の説明: void BHeap ::Insert(int ele) :挿入操作を実行して、要素をヒープに挿入します。 void BHeap ::DeleteMin() :削除操作を実行して、ヒープから最小値を削除します。 int BHeap ::
-
最大ヒープを実装するC++プログラム
バイナリヒープは、最小ヒープまたは最大ヒープのいずれかである完全なバイナリツリーです。最大バイナリヒープでは、ルートのキーは、バイナリヒープに存在するすべてのキーの中で最大である必要があります。このプロパティは、バイナリツリーのすべてのノードに対して再帰的に真である必要があります。最小バイナリヒープはMinHeapに似ています。 アルゴリズム max_heapの場合: Begin Declare function max_heap () Declare j, t of the integer datatype. &nbs
-
最小ヒープを実装するC++プログラム
バイナリヒープは、最小ヒープまたは最大ヒープのいずれかである完全なバイナリツリーです。最大バイナリヒープでは、ルートのキーは、バイナリヒープに存在するすべてのキーの中で最大である必要があります。このプロパティは、バイナリツリーのすべてのノードに対して再帰的に真である必要があります。最小バイナリヒープは最小ヒープに似ています。 アルゴリズム min_heap()の場合: Begin Declare function min_heap(int *a, int m, int n) Declare j, t of the int
-
C++のデフォルトコンストラクタ
クラスコンストラクターは、クラスの新しいオブジェクトを作成するたびに実行されるクラスの特別なメンバー関数です。 コンストラクターはクラスとまったく同じ名前になり、return型はまったくなく、voidでさえありません。コンストラクターは、特定のメンバー変数の初期値を設定するのに非常に役立ちます。 次の例では、コンストラクターの概念を説明しています- 例 #include <iostream> using namespace std; class Line { public: void setLength( do
-
C++の名前空間
同じクラスに同じ名前の2人のZaraがいる状況を考えてみましょう。それらを明確に区別する必要があるときはいつでも、名前とともにいくつかの追加情報を使用する必要があります。たとえば、地域、別の地域に住んでいる場合、母親や父親の名前などです。 C++アプリケーションでも同じ状況が発生する可能性があります。たとえば、xyz()という関数を持つコードを記述していて、同じ関数xyz()を持つ別のライブラリが利用可能であるとします。これで、コンパイラーは、コード内で参照しているxyz()関数のバージョンを知る方法がありません。 名前空間は、この問題を克服するように設計されており、異なるライブラリで使用
-
名前空間はC++でネストできますか?
はい、名前空間はC++でネストできます。次のように、別の名前空間内に1つの名前空間を定義できます- 構文 namespace namespace_name1 { // code declarations namespace namespace_name2 { // code declarations } } 次のような解決演算子を使用して、ネストされた名前空間のメンバーにアクセスできます- // to access members of namespace_name2 us
-
C++での並べ替え
このセクションでは、C++で並べ替えアルゴリズムを実行する方法を説明します。並べ替えられた配列は、各要素が数値、アルファベット順などの順序で並べ替えられた配列です。バブルソート、挿入ソート、選択ソート、マージソート、クイックソート、ヒープソートなど、数値配列をソートするための多くのアルゴリズムがあります。選択ソートを使用した配列のソートの詳細については、以下を参照してください。 選択ソートは、ソートされた配列を生成するソート方法です。これは、配列内の最小の要素を繰り返し見つけて、ソートされていない部分の先頭にある要素と交換することによって行われます。 選択ソートを使用してソートされた配列を
-
C++でのストランドソート
このセクションでは、C++の標準ライブラリを使用して配列またはリンクリストを並べ替える方法を説明します。 C ++には、さまざまな目的に使用できる複数の異なるライブラリがあります。並べ替えもその1つです。 C++関数std::list ::sort()は、リストの要素を昇順で並べ替えます。等しい要素の順序は保持されます。比較のために演算子<を使用します。 例 #include <iostream> #include <list> using namespace std; int main(void) { list<int> l =
-
C++での型推論
型推論または推論とは、プログラミング言語での式のデータ型の自動検出を指します。これは、いくつかの強く静的に型付けされた言語に存在する機能です。 C ++では、autoキーワード(C ++ 11で追加)が自動型推定に使用されます。たとえば、ベクトルを反復処理するイテレータを作成する場合、その目的でautoを使用するだけです。 例 #include<iostream> #include<vector> using namespace std; int main() { vector<int> arr(10);