当前位置: 首页>>代码示例>>C++>>正文


C++ boost::transform方法代码示例

本文整理汇总了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());
}
开发者ID:OlgaKurzeneva,项目名称:OOP,代码行数:10,代码来源:VectorProcessor.cpp

示例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 */
开发者ID:mforner,项目名称:wpl-polsar,代码行数:67,代码来源:Smoothing.cpp


注:本文中的boost::transform方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。