如何制作一个向量2f数组

问题描述 投票:0回答:1

我不知道如何使用 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++ arrays sfml
1个回答
0
投票

在 C++ 中,您无法像此处尝试那样从函数返回多个值:

return s,f;

有很多方法可以从函数返回多个对象:

std::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::array<Vector2f, 2> result = apple();
Vector2f s = result[0];
Vector2f f = result[1];

std::向量

您可以使用 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++ 函数返回多个值

© www.soinside.com 2019 - 2024. All rights reserved.