为Numeric和Integer Vector创建和重载函数

时间:2018-01-13 17:23:32

标签: r overloading rcpp

我知道我们不能根据这个Q/A重载R中的C ++函数。但有时我们需要它。建议将问题中的调度员联系起来的解决方案似乎对我来说有点过分(使用模板和开关)。我想知道是否有一个简单问题的优雅解决方案。

所以这是一个简单的问题。 xint的向量或double的向量。 {C}可以用更快和内存优化的方式编写sum(x == y)

int int_count_equal(IntegerVector x, int y)
{
 return std::count(x.begin(), x.end(), y);
}

int num_count_equal(NumericVector x, double y)
{
 return std::count(x.begin(), x.end(), y);
}

这两个功能具有相同的主体。它没有意义,有两个功能是不方便的。如何在单个函数count_equal中创建一个调度程序,而无需编写两次相同的代码?

0 个答案:

没有答案