根據使用者輸入建立動態二維數組
在某些程式設計場景中,可能需要建立一個二維數組數組的大小由使用者輸入確定。雖然傳統數組在聲明時需要固定維度,但 C 提供了解決此問題的解決方案。
選項 1:使用向量的向量
向量的向量,表示為vector
選項2:使用帶有重載運算子的自訂矩陣類別
更有效率的方法方法涉及建立一個自訂矩陣類別來處理記憶體分配並提供用於存取元素的重載運算子。這種方法可確保高效的記憶體管理和更快的存取時間。
template <class T> class matrix { int columns_; std::vector<T> data; public: matrix(int columns, int rows) : columns_(columns), data(columns * rows) {} T &operator()(int column, int row) { return data[row * columns_ + column]; } };
在此實作中,矩陣類別維護列大小和用於資料儲存的單一底層向量。重載的operator()允許使用方便的類似下標的語法來存取元素。
用法範例:
matrix<int> myMatrix(5, 5); // Declare a 5x5 matrix myMatrix(0, 0) = 10; // Set the (0, 0) element to 10 std::cout << myMatrix(0, 0); // Output the (0, 0) element, which should be 10
結論
本文探討了創建動態二維數組的兩個選項,為傳統方法提供了更詳細、更有效率的替代方案向量的向量方法。具有重載運算子的自訂矩陣類別提供了高效的記憶體管理和提高的存取速度,使其成為效能至關重要的場景的合適選擇。
以上是如何根據使用者輸入在 C 中高效率建立動態二維數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!