重載二維陣列的[] 運算子
可以重載[] 等運算子來為特定的物件提供自訂行為資料型態。對於二維數組,可以重載 [] 運算子兩次,從而實現方便直觀的語法。
多個索引的重載
要重載二維數組的 [] 運算符,您可以定義一個表示數組本身的類別。在此類中,您可以定義 [] 運算子兩次,每個索引一個。
class TwoDimensionalArray { public: int operator[](int index1) { // Return a one-dimensional array } int operator[](int index1, int index2) { // Access the element at the given indices } };
巢狀數組的代理類別
或者,您可以使用代理類別來表示第一個重載回傳的一維數組。這允許使用多個索引存取元素的便捷語法。
class ArrayOfArrays { public: ArrayOfArrays() { _arrayofarrays = new int*[10]; for (int i = 0; i < 10; ++i) _arrayofarrays[i] = new int[10]; } class Proxy { public: Proxy(int* _array) : _array(_array) { } int operator[](int index) { return _array[index]; } private: int* _array; }; Proxy operator[](int index) { return Proxy(_arrayofarrays[index]); } private: int** _arrayofarrays; };
用法
透過此實現,您可以使用重載的[] 運算子來存取元素在二維數組中,如下所示:
ArrayOfArrays aoa; aoa[3][5];
此語法類似於存取常規二維中的元素數組,使其易於使用和理解。
以上是如何重載 C 中二維數組存取的 [] 運算子?的詳細內容。更多資訊請關注PHP中文網其他相關文章!