从c+中的变量中提取值+; 我是C++的新手,我必须调用一个函数来返回矩阵G的特征值和特征向量;这是函数的模板 std::array< std::pair< Number, Tensor< 1, dim, Number > >, std::integral_constant< int, dim >::value > eigenvectors (const SymmetricTensor< 2, dim, Number > & T, const SymmetricTensorEigenvectorMethod method = SymmetricTensorEigenvectorMethod::ql_implicit_shifts);

从c+中的变量中提取值+; 我是C++的新手,我必须调用一个函数来返回矩阵G的特征值和特征向量;这是函数的模板 std::array< std::pair< Number, Tensor< 1, dim, Number > >, std::integral_constant< int, dim >::value > eigenvectors (const SymmetricTensor< 2, dim, Number > & T, const SymmetricTensorEigenvectorMethod method = SymmetricTensorEigenvectorMethod::ql_implicit_shifts);,c++,eigenvalue,eigenvector,C++,Eigenvalue,Eigenvector,我的问题是:输出“EIG”是矩阵还是向量?因为当我尝试提取EIG[0][0]时,我有一个错误: "no match for 'operator[]' (operand types are 'std::array<std::pair<double, dealii::Tensor<1, 3> >, 3>::value_type' {aka 'std::pair<double, dealii::Tensor<1, 3> >'} an

我的问题是:输出“EIG”是矩阵还是向量?因为当我尝试提取EIG[0][0]时,我有一个错误:

"no match for 'operator[]' (operand types are 'std::array<std::pair<double, dealii::Tensor<1, 3> >, 3>::value_type' {aka 'std::pair<double, dealii::Tensor<1, 3> >'} and 'int') cout << eigs[0][0];"

“运算符[]不匹配(操作数类型为'std::array::value_type'{aka'std::pair'}和'int')可以
EIG
是一个
std::array
,但
EIG
的每个元素都是一个
std::pair
。因此,您想要的是:

cout << eigs[0].second[0];

非常感谢您
"no match for 'operator[]' (operand types are 'std::array<std::pair<double, dealii::Tensor<1, 3> >, 3>::value_type' {aka 'std::pair<double, dealii::Tensor<1, 3> >'} and 'int') cout << eigs[0][0];"
cout << eigs[0].second[0];