如何使用std::transform
和std::foreach
实现此目的? (没有C ++ 11)
std::vector<double> exp_c(const std::vector<double>& x) {
const int n = x.size();
std::vector<double> y(n);
for (int i = 0; i < n; i++) {
y[i] = std::exp(x[i]);
}
return y;
}
感谢。
答案 0 :(得分:3)
使用android:background="@drawable/mydrawable"
,如下所示:
std::transform
实际上,当你使用lambda时,这几乎就是c ++ 11编译器所能创建的。
答案 1 :(得分:1)
有点丑陋的解决方案:
std::vector<double> exp_c(const std::vector<double>& x)
{
std::vector<double> y;
y.reserve(x.size());
std::transform(x.begin(), x.end(), std::back_inserter(y),
static_cast<double(*)(double)>(std::exp));
return y;
}
static_cast
必须告诉编译器将std::exp
的哪个重载传递给std::transform
。