我不知道如何使用 SFML 中的 vector2f 制作数组 它仅部分有效,仅适用于返回的最后一个变量。
Vector2f apple()
{
Vector2f s(2,4);
Vector2f f(2,4);
return s,f;
};
// s would be equal to 0,0 and f would be normal
your text
`
`
在 C++ 中,您无法像此处尝试那样从函数返回多个值:
return s,f;
有很多方法可以从函数返回多个对象:
您可以利用 std::make_pair 返回两个
Vector2f
,如下所示:
std::pair<Vector2f, Vector2f> apple() {
Vector2f s(2, 4);
Vector2f f(2, 4);
return std::make_pair(s, f);
}
现在,您可以通过执行以下操作来检索这两个值:
std::array<Vector2f, 2> result = apple();
Vector2f s = result[0];
Vector2f f = result[1];
您可以使用 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++ 函数返回多个值