C++での静的データメンバーの初期化
ここでは、C++で静的メンバー変数の初期化を初期化する方法を説明します。静的メンバー(関数または変数)をC++クラスに入れることができます。静的変数については、クラスを定義した後で初期化する必要があります。
初期化するには、クラス名、スコープ解決演算子、変数名の順に使用する必要があります。これで、値を割り当てることができます。
次のコードは、静的メンバーの初期化手法を示しています。
例
#include <iostream> using namespace std; class MyClass{ private: static int st_var; public: MyClass() { st_var++; //increase the value of st_var when new object is created } static int getStaticVar() { return st_var; } }; int MyClass::st_var = 0; //initializing the static int main() { MyClass ob1, ob2, ob3; //three objects are created cout << "Number of objects: " << MyClass::getStaticVar(); }
出力
Number of objects: 3
-
C++での循環キューデータ構造
キューは、要素のコレクションを含む抽象的なデータ構造です。キューはFIFOメカニズムを実装します。つまり、最初に挿入された要素も最初に削除されます。 キュー杖は1つの線形データ構造です。ただし、配列を使用してキューを実装すると、問題が発生する可能性があります。挿入と削除を連続して行うと、前後の位置が変わる場合があります。その瞬間、キューには要素を挿入するスペースがないように見えます。空きスペースがあっても、論理的な問題により使用されません。この問題を解決するために、循環キューのデータ構造を使用します。 循環キューは、最後の位置が最初の位置に接続されて円を描くタイプのキューです。 例 #in
-
C++での二分木の簡潔なエンコーディング
二分木があるとします。私たちが知っているように、バイナリツリーの簡潔なエンコーディングは可能な限り低いスペースに近いパフォーマンスを発揮します。 n番目のカタラン数は、n個の異なるノードを持つ構造的に異なる二分木の数によって指定されます。 nが大きい場合、これは約4nです。したがって、それをエンコードするには、log2(4)n=2nビット程度の最小値が必要です。したがって、簡潔な二分木は2n + O(n)ビットを消費します。 したがって、入力が次のような場合 その場合、出力は次のようになります エンコードされた- 構造リスト111 0 0 1 0 0 1 0 1 0 0 デー