C++ 如何扩展Eigen';什么是张量类?
我创建了一个函数来显示本征函数上张量的形状C++ 如何扩展Eigen';什么是张量类?,c++,eigen,tensor,eigen3,eigenclass,C++,Eigen,Tensor,Eigen3,Eigenclass,我创建了一个函数来显示本征函数上张量的形状 template<typename Scalar_, int rank> void shape(const Eigen::Tensor<Scalar_, rank>& x) { cout << "( "; for (int i(0); i<x.NumDimensions; i++){ cout << x.dimensions()[i];
template<typename Scalar_, int rank>
void shape(const Eigen::Tensor<Scalar_, rank>& x)
{
cout << "( ";
for (int i(0); i<x.NumDimensions; i++){
cout << x.dimensions()[i];
cout << ",";
}
cout << ")";
}
模板
空洞形状(常数本征::张量和x)
{
为什么?非成员非友元函数是更好的选择,因为我认为构造代码更好,如果我不构造成员函数,我将有一个Tensor.h文件,其中包含所有要与Tensor集成的函数。就代码结构而言,这并不令人不安?不,本文将详细介绍非成员函数非友元函数(比如你的shape函数)更好。它们增加了封装性,这是一本不错的读物。如果你有一本“高效c++”,它会被扩展。
Tensor <double,2> t (2,2)
shape(t)
Tensor <double,2> t (2,2)
t.shape