Я хочу применить унарный оператор, в частности abs (), поэлементно к dens_vector< двойной>.
Есть ли собственный вариант сделать это (вместо того, чтобы строить цикл вручную)? Если это так, мне понадобится краткое объяснение концепции.
Я просмотрел в MTL4 Полное руководство и не мог понять, как это сделать. Кажется, мне как-то нужно определить соответствующий функтор. Это mtl :: sfunctor :: abs? Если так, как я могу применить это к вектору?
После быстрого взгляда через источник dense_vector
, это похоже на стандартный соответствующий контейнер. Следовательно, это должно работать:
std::transform(v.begin(), v.end(), v.begin(),
static_cast<double(*)(double)>(&std::abs));