【问题标题】:Rcpp no matching function for call to absRcpp 没有调用 abs 的匹配函数
【发布时间】:2017-08-16 12:04:32
【问题描述】:

在使用Rcpp的时候,我想用函数abs,我就写Rcpp::abs(-1),但是总是报错:

没有匹配的函数调用 abs

其实在我写Rcpp:ab的时候,有一些提示是存在Rcpp::abs()。我尝试了一些其他功能Rcpp::NumericVector,它可以工作。我知道我可以使用std::abs(-1),我只是想知道为什么Rcpp::abs(-1) 不起作用,我的系统是windows,我安装了Rtools。

【问题讨论】:

    标签: r rcpp


    【解决方案1】:

    Rcpp::abs() 需要一个 Rcpp 对象,例如*Vector*Matrix

    不幸的是,-1 是原始类型,例如不是一个Rcpp对象。

    因此,以下方法可行:

    #include <Rcpp.h>
    // [[Rcpp::export]]
    void show_rcpp_abs() {
        Rcpp::NumericVector A = NumericVector::create(-1);
        Rcpp::Rcout << "A" << Rcpp::abs(A) << std::endl;
    
        double B = std::abs(-1.0);
        Rcpp::Rcout << "B" << B << std::endl;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-02
      • 1970-01-01
      • 1970-01-01
      • 2017-10-16
      • 1970-01-01
      • 2021-09-21
      • 2016-11-23
      • 2016-08-08
      相关资源
      最近更新 更多