我知道我们不能根据这个Q/A重载R中的C ++函数。但有时我们需要它。建议将问题中的调度员联系起来的解决方案似乎对我来说有点过分(使用模板和开关)。我想知道是否有一个简单问题的优雅解决方案。
所以这是一个简单的问题。 x
是int
的向量或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
中创建一个调度程序,而无需编写两次相同的代码?