首頁 >後端開發 >C++ >如何在 C 中將靜態宣告的二維數組實作為類別資料成員?

如何在 C 中將靜態宣告的二維數組實作為類別資料成員?

Patricia Arquette
Patricia Arquette原創
2024-12-26 21:44:09127瀏覽

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

在C 中靜態宣告的二維陣列作為類別資料成員

在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;

此方法可讓您建立一個行為類似於二維數組的 C 類,同時維護連續記憶體分配的好處,減少快取未命中,提高效能。

以上是如何在 C 中將靜態宣告的二維數組實作為類別資料成員?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn