C 템플릿 Typedef: 벡터를 특수 행렬로 생성
지정된 차원을 가진 행렬과 동등한 벡터를 생성하기 위해 typedef를 정의하면 다음과 같은 작업을 수행할 수 있습니다. 도전해 보세요. 해결책을 살펴보겠습니다.
클래스 템플릿 Matrix
typedef Matrix<N, 1> Vector<N>;
과 같은 전통적인 typedef 메커니즘을 사용하면 컴파일 오류가 발생합니다. 대신 C 11에서는 템플릿을 허용하는 별칭 선언을 도입합니다.
template <size_t N> using Vector = Matrix<N, 1>;
이 선언을 사용하면 Vector<3> Matrix<3, 1>과 동일합니다.
C 03에서는 중첩된 typedef를 통해 근사치가 가능했습니다.
template <size_t N> struct Vector { typedef Matrix<N, 1> type; };
여기서 Vector<3>::type은 동일합니다. 매트릭스로. 이 접근 방식은 C 11 구문만큼 간결하지는 않지만 이전 버전의 C에서 실행 가능한 대안을 제공합니다.
위 내용은 Typedef를 사용하여 C에서 벡터 유형을 특수 행렬로 정의하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!