我试图在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> >&)
我无法理解为什么会出现这种错误!任何想法或建议都会受到欢迎!
答案 0 :(得分:2)
尝试传递矢量而不是数组:
std::vector<float> y;
y.push_back(2); y.push_back(1); y.push_back(2);
Persistence1D p;
p.RunPersistence(y);