本文整理汇总了C++中boost::transform方法的典型用法代码示例。如果您正苦于以下问题:C++ boost::transform方法的具体用法?C++ boost::transform怎么用?C++ boost::transform使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类boost
的用法示例。
在下文中一共展示了boost::transform方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ProcessVector
void ProcessVector(std::vector<double> & numbers)
{
double minimalNumber = *(std::min_element(numbers.begin(), numbers.end()));
//boost::transform(numbers, numbers.begin(), arg1 * minimalNumber);
transform(numbers.begin(), numbers.end(), numbers.begin(), [minimalNumber](double current)
{
return (current * minimalNumber);
});
sort(numbers.begin(), numbers.end());
}
示例2: global_smooth
int global_smooth(ImagePyramid& v_copy, LinkPyramid& w_copy, const level_t lv,
const floating_t thresh1, const floating_t thresh2,
const size_t top_level)
{
using boost::transform;
using boost::adaptors::filter;
using common::pars;
using std::back_inserter;
using stats::print_roots;
using std::vector;
using util::fmt;
using std::cout;
using std::endl;
auto root_cnt = 0;
auto is_weak = [&w_copy, &thresh1](const auto& par, const auto& desc) {
return w_copy(par, desc) < thresh1;
};
auto is_strong = [&w_copy, &thresh2](const auto& par, const auto& desc) {
return w_copy(par, desc) > thresh2;
};
auto is_root = [&w_copy, top_level](const auto& node) {
return node.level >= top_level ||
util::is_zero(sum_upward_links(w_copy, node));
};
erase_weak_links(w_copy, lv, is_weak);
normalize(w_copy, lv);
for (const Node& node : w_copy.nodes(lv)) {
if (is_root(node) /*|| 1./util::condition(v_copy(node)) < 1e-6*/) {
root_cnt++;
continue;
}
else {
auto buf = std::vector<Mat3c> {};
buf.reserve(4);
auto is_accepted = [is_strong, &node](auto& par) {
return is_strong(par, node);
};
transform(filter(pars(node), is_accepted), back_inserter(buf),
[&](auto par) {
return v_copy(par);
});
if (buf.empty()) {
auto par = strongest_parent(w_copy, node);
buf.push_back(v_copy(par));
}
v_copy(node) = util::average(buf, Mat3c::Zero(3, 3));
}
}
// Print some information
auto node_range = w_copy.nodes(lv);
cout << endl;
stats::print_roots(node_range, is_root);
stats::print_accepted(node_range, is_strong, is_root);
cout << " weak: <" << util::fmt(thresh1, 5) << endl
<< "accepted: >" << util::fmt(thresh2, 5) << endl
<< " nodes: " << node_range.size() << endl;
return root_cnt;
} /* smooth_core */