C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

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

  1. C++での循環キューデータ構造

    キューは、要素のコレクションを含む抽象的なデータ構造です。キューはFIFOメカニズムを実装します。つまり、最初に挿入された要素も最初に削除されます。 キュー杖は1つの線形データ構造です。ただし、配列を使用してキューを実装すると、問題が発生する可能性があります。挿入と削除を連続して行うと、前後の位置が変わる場合があります。その瞬間、キューには要素を挿入するスペースがないように見えます。空きスペースがあっても、論理的な問題により使用されません。この問題を解決するために、循環キューのデータ構造を使用します。 循環キューは、最後の位置が最初の位置に接続されて円を描くタイプのキューです。 例 #in

  2. C++での二分木の簡潔なエンコーディング

    二分木があるとします。私たちが知っているように、バイナリツリーの簡潔なエンコーディングは可能な限り低いスペースに近いパフォーマンスを発揮します。 n番目のカタラン数は、n個の異なるノードを持つ構造的に異なる二分木の数によって指定されます。 nが大きい場合、これは約4nです。したがって、それをエンコードするには、log2(4)n=2nビット程度の最小値が必要です。したがって、簡潔な二分木は2n + O(n)ビットを消費します。 したがって、入力が次のような場合 その場合、出力は次のようになります エンコードされた- 構造リスト111 0 0 1 0 0 1 0 1 0 0 デー