gpt4 book ai didi

c# - 将 C# 中的 "from ... in "迭代转换为 C++ (Qt)

转载 作者:行者123 更新时间:2023-11-28 07:27:58 26 4
gpt4 key购买 nike

我有一个用 C# 编写的片段,现在我想将它转换为 Qt 环境。 C#代码如下:

double xSum = (from p in this select p.X).Sum();
double ySum = (from p in this select p.Y).Sum();

注意:在 c# 版本中变量 p 不是预定义的。

我尝试用 foreach 和 while 循环转换它,但出现了很多错误。你能帮我做吗?

这是我的qt版本,不能用

QPointF p;
double xSum = 0;
double ySum = 0;
foreach(p, this)
{
xSum = xSum + p.rx();
ySum = ySum + p.ry();
}

主要问题:Qt 中“from in”的等价物是什么?

最佳答案

C++ 为此使用 lambda:

double xSum = std::accumulate(begin(), end(), 0.0,
[](double d, QPointF p) { return d + p.rx(); } );
double ySum = std::accumulate(begin(), end(), 0.0,
[](double d, QPointF p) { return d + p.ry(); } );

或者:

 double xSum = 0;
std::for_each(begin, end, [&](QPointF p) { xSum += p.rx(); });

最直接的转换是

 double xSum = 0;
for (auto p : *this) {
xSum += p.rx();
}

关于c# - 将 C# 中的 "from ... in "迭代转换为 C++ (Qt),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18368889/

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