gpt4 book ai didi

c++ - 使用可变参数模板计算用户定义类的内容

转载 作者:太空宇宙 更新时间:2023-11-04 16:01:42 25 4
gpt4 key购买 nike

坐标结构;

   struct point{
int x_, y_;
}

假设我们有一个上面定义的坐标。除了这个结构之外,我想创建一个函数,它接受用户想要的尽可能多的参数(例如一个函数来找到三个或更多点的重心)。所以我决定使用可变参数模板。但我意识到我缺乏关于可变参数模板的信息。

至于计算重心,您应该将所有 x 相加,将总和除以元素数。并为 y 的元素执行此操作并返回一个点。你能告诉我一个实现这个的方法吗。

最佳答案

C++17 的折叠表达式让这变得轻而易举:

template <class... Points>
point barycentre(Points... points) {
point const sum{
(points.x_ + ...),
(points.y_ + ...)
};

int const num = sizeof...(Points);

return {
sum.x_ / num,
sum.y_ / num
};
}

See it live on Coliru

关于c++ - 使用可变参数模板计算用户定义类的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42691610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com