【发布时间】:2014-12-12 16:47:49
【问题描述】:
我试图了解一段 C++ 代码在做什么,但对 C 一无所知。
我有一个这样的循环:
(_A[0])=eigenMatrix::Zero(_n, _n);
for(i=0; i<_n; i++){
for(j=0; j<=i; j++) (_A[0])(j,i)=(_A[0])(i,j)=value[i*n+j];
}
A是一个eigenMatrix类型的向量:vector _A;
我认为第一行将 (_A[0]) 定义为一个零 n*n 矩阵,但我无法弄清楚 (_A[0])(j,i) 部分在做什么,并且可以'在 c++ 中找不到对这种 ()() 短语的任何引用。
【问题讨论】:
-
没有看到
_A的定义就不能告诉你任何事情。 -
我推测括号运算符的重载以将值分配给矩阵的元素。
-
C++ != C,顺便说一句,所以缺乏 C 知识并不一定意味着什么。如果
_A是一个类对象数组,那么该类可能实现operator(),它允许函数样式调用。否则它可能是一个函数指针数组。 -
在 C 中,唯一可行的方法几乎肯定是不是你的 C++ 代码正在做什么,所以我冒昧地将它从标签中删除并你的主题。
-
谢谢你——正如我所说,C++ 中的白痴
标签: c++