在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中文網其他相關文章!