Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengisytiharkan Tatasusunan 2-D secara Statik sebagai Ahli Data Kelas C?

Bagaimanakah Saya Boleh Mengisytiharkan Tatasusunan 2-D secara Statik sebagai Ahli Data Kelas C?

Barbara Streisand
Barbara Streisandasal
2024-12-12 11:27:16158semak imbas

How Can I Statically Declare a 2-D Array as a C   Class Data Member?

Mengisytiharkan Tatasusunan 2-D secara statik sebagai Ahli Data Kelas

Dalam C , kelas boleh mengandungi tatasusunan 2-D sebagai ahli data. Walau bagaimanapun, peruntukan memori dinamik biasanya digunakan untuk mencipta tatasusunan ini. Untuk mengelakkan ini dan mencapai peruntukan memori bersebelahan, seseorang boleh mempertimbangkan untuk mengisytiharkan tatasusunan secara statik.

Susun atur 2-D yang diisytiharkan secara statik dalam kelas boleh dimulakan menggunakan pembina tersuai. Berikut ialah contoh:

class Grid {
public:
    unsigned NR, NC;
    double Coordinates[NR][NC];

    Grid(unsigned rows, unsigned columns) : NR(rows), NC(columns) {}
};

Kelas ini mentakrifkan tatasusunan 2-D Koordinat dengan dimensi NR dan NC. Pembina memulakan NR dan NC apabila objek dicipta.

Walaupun mungkin untuk mengisytiharkan tatasusunan 2-D secara statik dalam C , adalah penting untuk ambil perhatian bahawa saiz tatasusunan mesti diketahui pada masa penyusunan . Ini boleh menjadi pengehadan dalam sesetengah senario.

Pendekatan alternatif ialah menggunakan vektor vektor (std::vector>) untuk mewakili tatasusunan 2-D. Ini memberikan lebih fleksibiliti kerana dimensi boleh dilaraskan secara dinamik. Walau bagaimanapun, ini mungkin mengakibatkan akses memori yang kurang cekap berbanding tatasusunan bersebelahan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengisytiharkan Tatasusunan 2-D secara Statik sebagai Ahli Data Kelas C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn