>백엔드 개발 >C++ >C의 행렬 템플릿에서 벡터 유형 별칭을 어떻게 만들 수 있습니까?

C의 행렬 템플릿에서 벡터 유형 별칭을 어떻게 만들 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-30 12:59:11909검색

How Can I Create a Vector Type Alias from a Matrix Template in C  ?

템플릿 별칭을 사용하여 행렬과 같은 벡터에 대한 Typedef 만들기

다음 클래스 템플릿을 고려하세요.

template<size_t N, size_t M>
class Matrix {
    // ....
};

목표는 크기가 있는 행렬과 동일한 벡터(열 벡터)를 생성하는 typedef를 정의하는 것입니다. N 및 1. 처음에는 typedef를 사용하여 시도했습니다:

typedef Matrix<N,1> Vector<N>;

그러나 이로 인해 컴파일 오류가 발생했습니다. 유사하지만 동일하지는 않은 솔루션이 클래스 상속을 사용하여 달성되었습니다.

template <size_t N>
class Vector: public Matrix<N,1>
{ };

더 적합한 솔루션을 찾기 위해 C 11에 도입된 별칭 선언을 사용합니다.

template <size_t N>
using Vector = Matrix<N, 1>;

이를 통해 다음이 가능해졌습니다. 유형 별칭 Vector 이는 Matrix과 동일합니다.

C 03에서는 중첩된 typedef가 있는 구조체를 사용하여 유사한 근사치를 얻을 수 있습니다.

template <size_t N>
struct Vector
{
    typedef Matrix<N, 1> type;
};

여기서 Vector< N>::type은 Matrix과 동일합니다.

위 내용은 C의 행렬 템플릿에서 벡터 유형 별칭을 어떻게 만들 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.