-
C++での文字列のトークン化
このセクションでは、C++で文字列をトークン化する方法を説明します。 Cでは、文字配列にstrtok()関数を使用できます。ここに文字列クラスがあります。次に、その文字列から区切り文字を使用して文字列を切り取る方法を説明します。 C ++機能を使用するには、文字列を文字列ストリームに変換する必要があります。次に、getline()関数を使用して、タスクを実行できます。 getline()関数は、文字列ストリーム、出力を送信するための別の文字列、およびストリームのスキャンを停止するための区切り文字を受け取ります。 関数がどのように機能しているかを理解するために、次の例を見てみましょう。 サン
-
C++でintをstringに変換する最も簡単な方法は何ですか
このセクションでは、整数を文字列に変換する方法を説明します。 ロジックは非常に単純です。ここでは、sprintf()関数を使用します。この関数は、値または行を文字列に出力するために使用されますが、コンソールでは使用されません。これは、printf()とsprintf()の唯一の違いです。ここで、最初の引数は文字列バッファです。データを保存したい場所。 Input: User will put some numeric value say 42 Output: This program will return the string equivalent result of that numbe
-
三分木を実装するC++プログラム
三分木は、各ノードに最大3つの子ノードがあり、通常は「左」、「中央」、「右」で表されるツリーデータ構造です。このツリーでは、子を持つノードは親ノードであり、子ノードには親への参照が含まれる場合があります。これは、三分木とツリーの走査を実装するためのC++プログラムです。 アルゴリズム Begin Declare function insert(struct nod** root, char *w) if (!(*root)) then *root = newn
-
二分探索木で辞書操作を実行するC++プログラム
二分探索木は、すべてのノードが次の2つのプロパティを持つソートされた二分木です- ノードの右側のサブツリーには、その親ノードのキーよりも大きいキーがあります。 ノードの左側のサブツリーには、その親ノードのキー以下のキーがあります。 各ノードには2つ以上の子を含めることはできません。 これは、二分探索木で辞書操作を実行するためのC++プログラムです。 アルゴリズム 挿入の場合: Begin Declare function insert(int k) in = int(k mod max)
-
与えられた二分木の順序のない非再帰的トラバーサルを実行するC++プログラム
二分木が順番にトラバースされる場合、最初に左側のサブツリーにアクセスし、次にルートにアクセスし、次に右側のサブツリーにアクセスします。 in_orderトラバーサルで昇順でキーを出力します。これは、再帰のない順序付きツリートラバーサル用のC++プログラムです。 アルゴリズム Begin Declare a structure n. Declare d of the integer datatype. Declare a pointer l against structure n. &n
-
二分探索木で左回転を実行するC++プログラム
二分探索木は、すべてのノードが次の2つのプロパティを持つソートされた二分木です- ノードの右側のサブツリーには、親ノードのキーよりも大きいすべてのキーがあります。 ノードの左側のサブツリーには、親ノードのキーよりも少ないすべてのキーがあります。各ノードには2つ以上の子を含めることはできません。 木の回転は、二分木の要素の順序を妨げることなく構造を変更する操作です。ツリー内で1つのノードを上に移動し、1つのノードを下に移動します。これは、ツリーの形状を変更したり、小さいサブツリーを下に移動したり、大きいサブツリーを上に移動したりして高さを低くしたりするために使用され、多くのツリー操作の
-
与えられた二分木のポストオーダー非再帰的トラバーサルを実行するC++プログラム
二分木がポストオーダーでトラバースされる場合、最初に左側のサブツリーにアクセスし、次に右側のサブツリーにアクセスし、次にルートにアクセスします。これは、再帰なしのポストオーダーツリートラバーサル用のC++プログラムです。ここでは、スタックを使用してプログラムを実行します。 アルゴリズム 注文後のトラバーサルの場合: Begin Declare postorder_traversal(struct node*t,struct tree**top) if(t==NULL) then &
-
二分探索木で右回転を実行するC++プログラム
二分探索木は、すべてのノードが次の2つのプロパティを持つソートされた二分木です- ノードの右側のサブツリーには、その親ノードのキーよりも大きいキーがあります。 ノードの左側のサブツリーには、その親ノードのキー以下のキーがあります。 各ノードには2つ以上の子を含めることはできません。 木の回転は、二分木の要素の順序を妨げることなく構造を変更する操作です。ツリー内で1つのノードを上に移動し、1つのノードを下に移動します。これは、ツリーの形状を変更したり、小さいサブツリーを下に移動したり、大きいサブツリーを上に移動したりして高さを低くしたりするために使用され、多くのツリー操作のパフォーマンス
-
std ::getline()がフォーマットされた抽出後に入力をスキップするのはなぜですか?
std ::getline()は、フォーマットされた抽出の後に入力をスキップします。このエラーは、次のコードから簡単に確認できます- サンプルコード #include <iostream> #include <string> using namespace std; int main(){ string name; string city; if (cin >> name && getline(cin, city)){
-
複数の文字で使用される場合、C ++で一重引用符は何をしますか?
C++では C ++では、二重引用符は文字列リテラルとして使用され、1文字の単一引用符は文字リテラルとして使用されます。ここで、一重引用符を使用して複数文字の文字列を印刷しようとすると、出力がどうなるかを確認します。 サンプルコード #include<iostream> using namespace std; main() { cout << 'ABCD'; } 出力 1094861636 このプログラムは、出力として多数を返します。ここで問題となるのは、この数字の意味は何ですか? この番号はメモリアドレスではありません
-
C++での値渡しと参照渡しの違い
C ++では、さまざまな方法で引数を関数に渡すことができます。これらのさまざまな方法は-です 値による呼び出し 参照による呼び出し 住所による電話 アドレスによる呼び出しは参照による呼び出しと呼ばれることもありますが、C++では異なります。アドレスによる呼び出しでは、ポインター変数を使用して正確なメモリアドレスを送信しますが、参照による呼び出しでは、参照変数(その変数のエイリアス)を渡します。この機能はCには存在しません。その効果を得るには、ポインターを渡す必要があります。このセクションでは、値による呼び出しよりも参照による呼び出しの利点と、それらを使用する場所について説明します。 値に
-
ツリーの奇数レベルのみを印刷するC++プログラム
これは、ツリーの奇数レベルのみを出力するC++プログラムです。 アルゴリズム 擬似コードを使用した構造と関数: Begin Declare nod as a structure. Declare d of integer datatype. Declare a pointer l against struct nod. Declare a pointer l against struct nod. Call fun
-
C ++で入力を読み取った後、なぜcin.clear()とcin.ignore()を呼び出すのでしょうか。
C ++では、cinはユーザーからの入力を受け取るために使用されます。いくつかの理由で、いくつかのエラーフラグが設定されることがあります。その間、cinは入力を受け取りません。他の文字が必要な場合もあります。したがって、cinをクリアすると、エラーフラグがリセットされます。次に、getline()、get()などの関数を使用できます。 ignore()関数は、別のストリーム入力関数です。このような関数を書くと cin.ignore(1000, ‘\n’) 次に、次の1000文字を無視します。それ以外の場合は、「\n」が見つかるまで行を無視します。
-
C / C ++で中括弧を省略するのはなぜ悪い習慣と見なされるのですか?
C ++では、if-elseステートメントの後、またはループの後の中括弧を省略できます。中括弧を使用しない場合、if-elseまたはloopの後の1つのステートメントのみがそのブロックの下で考慮されます。例- if(condition) { Line 1 Line 2 } if(condition) Line 1 Line 2 最初のケースでは、Line1とLine2の両方がifブロックにあります。しかし、2番目の条件では、Line1はifブロックにありますが、Line2はifブロックにありません。したがって、中括弧は省略できますが、if
-
C ++で(int)xの代わりにstatic_cast <int>(x)を使用するのはなぜですか?
(int)xはCスタイルの型キャストであり、static_cast (x)はC++で使用されます。このstatic_cast<>()はコンパイル時チェック機能を提供しますが、Cスタイルのキャストはそれをサポートしていません。このstatic_cast<>()は、C++コード内のどこにでも見つけることができます。そして、このC ++キャストを使用すると、意図がはるかによく伝わります。 キャストのようなCでは、他の型データを指すように型ポインターをキャストできる場合があります。 1つの整数ポインタが文字タイプのデータを指すこともできるように、それらは非常に似ているため、違いは文字が1バイト、整数
-
要素を追加または削除するときにAVLツリーが実行している回転の種類を印刷するC++プログラム
AVLツリーは自己平衡二分探索木であり、左右のサブツリーの高さの差がすべてのノードで複数になることはありません ツリーの回転は、AVLツリーの要素の順序を妨げることなく構造を変更する操作です。ツリー内で1つのノードを上に移動し、1つのノードを下に移動します。これは、ツリーの形状を変更したり、小さいサブツリーを下に移動したり、大きいサブツリーを上に移動したりして高さを低くしたりするために使用され、多くのツリー操作のパフォーマンスが向上します。回転の方向は、木のノードが移動する側に依存しますが、他の人は、どの子がルートの場所をとるかに依存すると言います。これは、AVLツリーを実装するためのC++
-
CまたはC++での一重引用符と二重引用符
CおよびC++では、一重引用符は一文字を識別するために使用され、二重引用符は文字列リテラルに使用されます。文字列リテラル「x」は文字列であり、文字「x」とヌルターミネータ「\0」が含まれています。したがって、この場合、「x」は2文字の配列です。 C ++では、文字リテラルのサイズはcharです。 Cでは、文字リテラルのタイプは整数(int)です。したがって、Cではsizeof(‘a’)は32ビットアーキテクチャでは4であり、CHAR_BITは8です。ただし、sizeof(char)はCとC++の両方で1バイトです。
-
C / C ++でのぶら下がり、ボイド、ヌル、ワイルドポインタ
ダングリングポインタ ダングリングポインタは、解放(または削除)されたメモリ位置を指すポインタです。ポインタがダングリングポインタとして機能するさまざまな方法があります 関数呼び出し ローカル変数が静的でない場合、ローカル変数を指すポインターはぶら下がります。 int *show(void) { int n = 76; /* ... */ return &n; } 出力 Output of this program will be garbage address. メモリの割り当て解除 #include <stdlib.h> #include
-
C ++で値渡しと参照渡しのどちらが良いですか?
C ++では、さまざまな方法で引数を関数に渡すことができます。これらのさまざまな方法は-です 値による呼び出し 参照による呼び出し 住所による電話 アドレスによる呼び出しは参照による呼び出しと呼ばれることもありますが、C++では異なります。アドレスによる呼び出しでは、ポインター変数を使用して正確なメモリアドレスを送信しますが、参照による呼び出しでは、参照変数(その変数のエイリアス)を渡します。この機能はCには存在しません。その効果を得るには、ポインターを渡す必要があります。 このセクションでは、値による呼び出しよりも参照による呼び出しの利点と、それらを使用する場所について説明します。
-
C ++でインターフェイスをどのように宣言しますか?
インターフェイスは、C ++クラスの特定の実装にコミットすることなく、そのクラスの動作または機能を記述します。 C ++インターフェースは抽象クラスを使用して実装されており、これらの抽象クラスを、実装の詳細を関連データから分離するという概念であるデータ抽象化と混同しないでください。 クラスは、その関数の少なくとも1つを純粋仮想関数として宣言することによって抽象化されます。純粋仮想関数は、次のように宣言に「=0」を配置することで指定されます- class Box { public: // pure virtual funct