Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mencipta Tatasusunan Dua Dimensi Dinamik dengan Cekap dalam C Berdasarkan Input Pengguna?
Mencipta Tatasusunan Dua Dimensi Dinamik Berdasarkan Input Pengguna
Dalam sesetengah senario pengaturcaraan, mungkin perlu mencipta dua dimensi tatasusunan dengan saiz yang ditentukan oleh input pengguna. Walaupun tatasusunan tradisional memerlukan dimensi tetap pada pengisytiharan, C menyediakan penyelesaian untuk menangani isu ini.
Pilihan 1: Menggunakan Vektor Vektor
Vektor vektor, dilambangkan sebagai vektor
Pilihan 2: Menggunakan Kelas Matriks Tersuai dengan Pengendali Beban Lebih
Lebih cekap pendekatan melibatkan penciptaan kelas matriks tersuai yang mengendalikan peruntukan memori dan menyediakan operator terlampau beban untuk mengakses elemen. Pendekatan ini memastikan pengurusan memori yang cekap dan masa capaian yang lebih pantas.
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]; } };
Dalam pelaksanaan ini, kelas matriks mengekalkan saiz lajur dan satu vektor asas untuk penyimpanan data. Operator terbeban() membenarkan sintaks seperti subskrip yang mudah untuk mengakses elemen.
Contoh Penggunaan:
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
Kesimpulan
Artikel ini meneroka dua pilihan untuk mencipta tatasusunan dua dimensi dinamik, menyediakan alternatif yang lebih terperinci dan berprestasi kepada pendekatan vektor tradisional. Kelas matriks tersuai dengan pengendali terlebih beban menawarkan pengurusan memori yang cekap dan kelajuan akses yang dipertingkatkan, menjadikannya pilihan yang sesuai untuk senario yang prestasinya penting.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Tatasusunan Dua Dimensi Dinamik dengan Cekap dalam C Berdasarkan Input Pengguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!