C++でのゼロ初期化
ゼロ初期化 C++のオブジェクトの初期値をゼロに設定しています。
構文
T{} ;
char array [n] = “”; ゼロ初期化が実行される状況は-
です。-
静的またはスレッドローカルストレージを持つ名前付き変数はゼロに初期化されます。
-
これは、非クラス型およびコンストラクターを持たないクラスのメンバーの値の初期化として使用されます。
-
文字配列の長さが割り当てられる文字数よりも大きい場合に、文字配列を初期化するために使用されます。
覚えておくべきポイント
-
静的変数やスレッドローカル変数などの一部のタイプの変数は、最初にゼロに初期化され、次に呼び出されたときに値に再初期化されます。
-
ゼロで初期化されたポインタは、nullポインタと呼ばれます。
例
ゼロ初期化の実装を示すプログラム C++で-
#include <iostream>
#include <string>
using namespace std;
struct zeroInitialization {
int x, y, z;
};
float f[3];
int* p;
string s;
int main(int argc, char* argv[]){
zeroInitialization obj = zeroInitialization();
cout<<"Zero initialized object variable :\t";
cout<<obj.x<<"\t"<<obj.y<<"\t"<<obj.z<<"\n";
cout<<"Zero initialized float value :\t";
cout<<f[0]<<"\t"<<f[1]<<"\t"<<f[2]<<"\n";
cout<<"Zero initialized pointer value :\t";
cout<<p<<"\n";
return 0;
} 出力
Zero initialized object variable : 0 0 0 Zero initialized float value : 0 0 0 Zero initialized pointer value : 0
-
C /C++での多次元配列の初期化
多次元配列では、配列の次元は1より大きい必要があります。次の図は、次元が3 x 3x3の多次元配列のメモリ割り当て戦略を示しています。 これは、多次元配列を初期化するためのC++プログラムです。 アルゴリズム Begin Initialize the elements of a multidimensional array. Print the size of the array. Display the content of the array. End 例 #include<iostream>
-
C++でバイナリ行列をゼロ行列に変換するためのフリップの最小数
mxnのバイナリ行列マットがあるとします。 1つのステップで、1つのセルを選択し、そのビットとその4つの隣接セルすべて(存在する場合)を反転できます。マットをゼロ行列に変換するために必要な最小ステップ数を見つける必要があります。解決策がない場合は、-1を返します。 したがって、指定された入力が[[0,0]、[0,1]]のような場合、変更は-のようになります。 したがって、3つのステップが必要で、出力は3になります。 これを解決するには、次の手順に従います- n:=行数、m:=列数、x:=0 iを初期化する場合:=0、i