我希望实时汇总4帧中的所有值。当前帧和之前的3帧。要做到这一点,每次生成当前的farme时,我都会将它存储在一个名为Nframe的向量中。这是我到目前为止所做的,但似乎不正确..
float *amp; //points to the current frame
vector<float *>Nframe;
for(int i=0; i<4; i++){
Nframe.push_back(amp);
}
int sum_of_elems=0;
for(std::vector<int>::iterator j=Nframe.begin();j!=Nframe.end();++j){
sum_of_elems += *j;
}
答案 0 :(得分:0)
可变放大器定义为浮点指针。所以我认为向量Nframe被定义(或应该被定义)为std::vector<float *>
在这种情况下,代码将按以下方式显示
float sum_of_elems = 0.0f;
for ( auto value : Nframe ) sum_of_elems += *value;
答案 1 :(得分:0)
我认为问题是
std::vector<int>::iterator j=Nframe.begin();
它基本上是表示指向int =指针指向float
的指针即iterator to int = iterator to float*
这是错误的。
改为这样的
float sum_of_elems=0.0; // make it float
for(std::vector<float*>::iterator j=Nframe.begin();j!=Nframe.end();++j){// make iterator to float*
sum_of_elems += **j;