C でクラス データ メンバーとして静的に宣言された 2 次元配列
C では、静的に宣言された 2 を組み込んだクラスを作成できます。 -データメンバーとしての次元配列。このアプローチは、実行時に配列のメモリが動的に予約される動的割り当てとは異なります。
これを実現するには、クラス内でベクター コンテナを適切なインデックス付けメカニズムとともに利用できます。以下に例を示します。
class Array2D { public: vector<int> v; int nc; Array2D(int NR, int NC) : v(NR * NC), nc(NC) {} int* operator[](int r) { return &v[r * nc]; } };
この例では、クラスにはベクトル v と列数を表す整数 nc が含まれています。コンストラクターは、ベクトルを適切なサイズで初期化し、列数を保存するために使用されます。
[] 演算子は、配列要素に効率的にアクセスするためのインターフェイスを提供するために再定義されています。 array2d[r][c] にアクセスすると、内部で r (行) と c (列) に基づいてベクトル内のインデックスが計算されます。これにより、配列に個別にメモリを割り当てる必要がなくなります。
使用例:
Array2D array2d(2, 3); array2d[0][0] = 1; array2d[1][2] = 6;
このメソッドを使用すると、配列を維持しながら 2 次元配列のように動作する C クラスを作成できます。連続したメモリ割り当ての利点、キャッシュミスの削減、パフォーマンスの向上。
以上が静的に宣言された 2 次元配列を C のクラス データ メンバーとして実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。