I는 행렬의 행렬식을 계산하고있어, 계산 및 따라서 방법은, 예를 들어, 데이터의 차원에 따라 호출 : I는 데C++ 반복자 - 추론 차원
template<int X, int Y>
float determinant(X, Y, std::vector<Vector> &data)
{
// Determine the dimensionality of matrix data (x and y)
}
문제
class PCA {
public:
template<typename T>
PCA(T begin, T end)
{
// Determine the X and Y here
float det = determinant(X, Y, ....);
}
};
지금 나는 통과 된 반복자에서 X
및 Y
을 추론 할 수 있는지 여부를 궁금 :이 함수를 호출 PCA를 계산하는 클래스 만의 반복자를 받아들이는 것입니다 목 말라 h PCA가 아니라 두 개의 정수 값을 전달합니다.
가 어떤 조언을 크게
을 주시면 감사하겠습니다 편집 :사과, 내 질문은 분명하지 않다.
기본적으로 typedef std::vector<double> Vector;
이 사용되므로 std::vector<Vector> data;
은 벡터의 벡터가됩니다.
나는이 다음을 수행 샘플 :
std::vector<Vector> data1 = { {1, 2}, {3, 4}, {5, 6}, {8, 9} }; // 2x2
나는 다음과 같은 추가 할 때 반면 : 행렬식을 계산할 때 std::vector<Vector> data2 = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12} }; // 3x3
너무 분명,이에 대해 다른 계산이있다.
I 그 DATA1을 추론 할 특별히 이들 값을 전달하지 않고 함수로부터 2 × 2와 데이터 2 × 3이다.
도움이 필요하면 반복기 코드를 게시해야합니다. –
여기에 X와 Y 유형이 무엇입니까 (int가 아닌 이유는 무엇입니까?)? 반복자는 누가 정의합니까? iterator를 정의하면 iterator의 정의에 typedef를 넣고 determinant와 같은 sth를 수행 할 수 있습니다. (T :: DIMType1, T :: DIMType2) – szli
@Marco 반복자의 코드를 어떻게 의미합니까? 죄송합니다 – Phorce