Я пытаюсь развить некоторые функции c ++ для их повторного использования в моем проекте R.
#include <Rcpp.h>
using namespace Rcpp;
double scalar_product(std::vector<double> const& a, std::vector<double> const& b)
{
if (a.size() != b.size()) { throw std::runtime_error("different sizes"); }
return std::inner_product(a.begin(), a.end(), b.begin(), 0.0);
} // scalar_product
double hashC(double x, double y) {
double ys = scalar_product(x , y);
if (ys > 0) {
return 1;
} else if (ys == 0) {
return 0;
} else {
return 0;
}
}
/*** R
x=c(1,2,3,4)
y=c(-1,-2,-3,-5)
d=hashC(x,y)
print("d")
print(d)
*/
Я получил ошибку: invalid initialization of reference of type 'const std :: ......
Ошибка отображается в эта строка:
double ys = scalar_product(x , y);
Извините, но я не очень хорош в C ++.