Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何扩展Eigen';什么是张量类?_C++_Eigen_Tensor_Eigen3_Eigenclass - Fatal编程技术网

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