在c ++中查找局部极值

时间:2014-12-03 11:06:49

标签: c++ arrays class persistence

我试图在root直方图中找到局部极值。我的想法是数组中的bin内容并使用pesistence1d class

第一步是创建一个简单的float数组并使用该类,使用以下简单代码

#include "persistence1d.hpp"

using namespace std;
using namespace p1d;

int main()
{
    float y[3] = {2,1,2}; 
    //cout << y[0] << y[1] << y[2] << endl; 

    //Run persistence on data - this is the main call.
    Persistence1D p;
    p.RunPersistence(y);

    return 0;

}

问题是,当我使用g++ extrema.cpp编译此代码时,我收到以下错误

extrema.cpp: In function ‘int main()’: 
extrema.cpp:20: error: no matching function for call to ‘p1d::Persistence1D::RunPersistence(float [3])’ 
persistence1d.hpp:128: note: candidates are: bool p1d::Persistence1D::RunPersistence(const std::vector<float, std::allocator<float> >&)

我无法理解为什么会出现这种错误!任何想法或建议都会受到欢迎!

1 个答案:

答案 0 :(得分:2)

尝试传递矢量而不是数组:

std::vector<float> y;
y.push_back(2); y.push_back(1); y.push_back(2);
Persistence1D p;
p.RunPersistence(y);