Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mentakrifkan Jenis Vektor sebagai Matriks Khusus dalam C Menggunakan Typedefs?
C Template Typedef: Mencipta Vektor sebagai Matriks Khusus
Mentakrifkan typedef untuk mencipta vektor yang setara dengan matriks dengan dimensi tertentu boleh menjadi mencabar. Mari terokai penyelesaian:
Pertimbangkan templat kelas Matriks
Menggunakan mekanisme typedef tradisional seperti:
typedef Matrix<N, 1> Vector<N>;
akan mengakibatkan ralat penyusunan. Sebaliknya, C 11 memperkenalkan perisytiharan alias yang membenarkan templat:
template <size_t N> using Vector = Matrix<N, 1>;
Dengan pengisytiharan ini, jenis Vector<3> akan bersamaan dengan Matriks<3, 1>.
Dalam C 03, anggaran boleh dilakukan melalui typedef bersarang:
template <size_t N> struct Vector { typedef Matrix<N, 1> type; };
Di sini, Vector<3>::jenis akan menjadi setara kepada Matriks<3, 1>. Pendekatan ini, walaupun tidak ringkas seperti sintaks C 11, menyediakan alternatif yang berdaya maju dalam versi C .
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mentakrifkan Jenis Vektor sebagai Matriks Khusus dalam C Menggunakan Typedefs?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!