提问人:user18504606 提问时间:10/22/2023 最后编辑:Remy Lebeauuser18504606 更新时间:10/22/2023 访问量:97
如何从 SFML 制作 Vector2f 数组?[复制]
How do I make an array of Vector2f from SFML? [duplicate]
问:
我不知道如何用SFML制作数组。
它只部分起作用,它只对返回的最后一个变量起作用。Vector2f
Vector2f apple()
{
Vector2f s(2,4);
Vector2f f(2,4);
return s,f;
};
s
将等于并且是正常的。0,0
f
答:
1赞
Erdit
10/22/2023
#1
在 C++ 中,您无法像此处尝试的那样从函数返回多个值:
return s,f;
您可以通过多种方式从函数返回多个对象:
标准::make_pair
你可以利用 std::make_pair 来返回两个 ',如下所示:Vector2f
std::pair<Vector2f, Vector2f> apple() {
Vector2f s(2, 4);
Vector2f f(2, 4);
return std::make_pair(s, f);
}
现在,您可以通过执行以下操作来检索这两个值:
std::pair<Vector2f, Vector2f> result = apple();
Vector2f s = result.first;
Vector2f f = result.second;
标准::向量
您可以使用 std::vector(或 std::array)返回多个对象。
std::vector<Vector2f> apple() {
Vector2f s(2, 4);
Vector2f f(2, 4);
return {s, f};
}
您可以执行以下操作来检索它们:
std::vector<Vector2f> result = apple();
Vector2f s = result[0];
Vector2f f = result[1];
您也可以使用输出参数来保存结果,但我相信上述两个参数对于您尝试执行的操作来说已经足够了。Vector2f
这篇文章还涵盖了您的问题:从 C++ 函数返回多个值
评论
Vector2f
s 将等于 0,0,f 将正常
” -- 我看到的唯一变量初始化为 。如果你的意思是在调用 的函数中看到,那么该代码应该是最小可重现示例的一部分。s
2,4
0,0
apple()