如何使用std :: transform进行计算

大草原

我有一个void函数,它将一组点的起点和终点的迭代器(Setiterator set_begin,Setiterator set_end)作为参数,执行一些计算的查询点和一组点的beginnig的迭代器(在这里,将要添加结果)

void computedist(Setiterator set_begin, Setiterator set_end,
Vector const& query_point, DistanceIterator dist_begin )
{
    std::transform(set_begin, set_end, dist_begin, calculation);

}

我已经读过std :: transform,可以在整个点集上进行该计算,但是我不知道该如何定义要完成的计算,因为我是C ++的新手。

在这种情况下,我想计算点到查询点的距离:

我想我的计算应该像这样

double calc_dist(double query_point, double point_of_the_set){
     double dist;
     dist = fabs(query_point - point_of_the_set);
     return dist;

但是我不知道如何为函数提供参数,因为我是迭代器的新手。

谢谢!

的味道std::transform你调用需要一个UnaryOp函数来调用,并向它传递“*迭代器”通过const引用,并预计的返回值iterator::value_type,它写入*dest

#include <iostream>
#include <algorithm>
#include <vector>

int main() {
    using valtype = int;
    std::vector<valtype> v1 { 1, 2, 3, 4, 5 };
    std::vector<valtype> v2(v1.size());
    std::transform(v1.begin(), v1.end(), v2.begin(),
        [] (const valtype& in) { return in * 2; });

    for (auto& val : v2)
        std::cout << val << '\n';
}

现场演示:http//ideone.com/CUUlvA

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何正确使用std :: transform和std :: mem_fn?

来自分类Dev

如何使用变量进行计算

来自分类Dev

如何使用 std::transform 抛出越界写入异常?

来自分类Dev

如何使用ARRAYFORMULA进行累计和计算

来自分类Dev

如何使用 Google Cloud 进行计算?

来自分类Dev

使用maple计算值以进行mod计算

来自分类Dev

如何对表进行子集化并使用值进行统计计算

来自分类Dev

使用.groupby和.transform进行聚合

来自分类Dev

如何排除组进行计算

来自分类Dev

如何对特定行进行计算?

来自分类Dev

此计算如何进行?

来自分类Dev

如何使用gtest对std :: bind函数进行单元测试?

来自分类Dev

BOOST / STD / AKKA:如何使用C ++进行actor编程?

来自分类Dev

如何使用gtest对std :: bind函数进行单元测试?

来自分类Dev

使用Python进行阶乘计算

来自分类Dev

使用变量进行PHP计算

来自分类Dev

使用列表进行Python计算

来自分类Dev

使用多行,熊猫进行计算

来自分类Dev

使用python数组进行计算

来自分类Dev

使用Python进行阶乘计算

来自分类Dev

使用For循环进行JavaScript计算

来自分类Dev

使用jQuery进行简单计算

来自分类Dev

使用列表值进行计算

来自分类Dev

使用循环变量进行计算

来自分类Dev

使用JavaScript进行简单计算

来自分类Dev

使用JavaScript进行GridView计算

来自分类Dev

MySQL使用“ as”进行更多计算

来自分类Dev

使用GPU进行矩阵计算

来自分类Dev

使用 SparkR 进行行计算