ホームページ > バックエンド開発 > C++ > 静的に宣言された 2 次元配列を C のクラス データ メンバーとして実装するにはどうすればよいですか?

静的に宣言された 2 次元配列を C のクラス データ メンバーとして実装するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-26 21:44:09
オリジナル
171 人が閲覧しました

How Can I Implement Statically Declared 2-D Arrays as Class Data Members in C  ?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート