2014-05-20 58 views
0

我想寫出像一個函數:如何編寫一個接受不同大小的特徵矩陣的std :: vector的函數?

void do_sth(const std::vector<Eigen::Matrix2d> >&); //http://eigen.tuxfamily.org 

但應針對不同的矩陣大小,例如工作Matrix4d。

即使看完這個我無法弄清楚: http://eigen.tuxfamily.org/dox/TopicFunctionTakingEigenTypes.html

可能有人請幫忙嗎?

+0

雖然'可以了'的std ::矢量<徵::矩陣>使用本徵:: Ref'作爲例子鏈接,你的情況'不能傳遞給使用'std :: vector '的函數。問題是'vector',而不是矩陣。 –

回答

1

您可以使用類似:

template <std::size_t W, std::size_t H> 
void do_sth(const std::vector<Eigen::Matrix<double, W, H>>&); 
+0

好的,這個工程。謝謝。但是我仍然希望得到一個非模板化的解決方案,例如通過使用Eigen :: Ref類(?)。如果沒有其他事情出現,我會接受你的答案。 – user1304680

+0

@ user1304680模板有什麼問題? – Rook

+0

例如我不能將函數定義從實現中的聲明和頭文件中以通常的方式分離出來(我知道有解決方法,但我寧願不使用模板,因爲所描述的問題似乎很簡單,以避免它們(即使我不知道如何;))) – user1304680

相關問題