gpt4 book ai didi

c++ - 无法在虚幻引擎中使用 std::vector

转载 作者:太空宇宙 更新时间:2023-11-04 13:00:13 26 4
gpt4 key购买 nike

我在 UE4 项目中使用 STL 功能时遇到问题。

Intellisense 正在用它的红线显示错误并且不理解我试图写的内容。

我使用的是 VS 2017,还下载了 Unreal 开发设置。

我已经使用相同的 IDE 在一个空白项目中测试了 STL 功能,它在那里工作正常,没有智能感知问题。

我假设我缺少某种与 Unreal Engine 有关的特殊设置,但我不知道它是什么,而且似乎无法在他们的文档中找到任何内容。

谢谢

#include <vector>

#include "CoreMinimal.h"
#include "Interactable.h"
#include "Hand.generated.h"

class Card;

UCLASS()
class SKYLINE_API AHand : public AInteractable
{
GENERATED_BODY()

public:

void PlayCard();
void DiscardCard();

private:

std::vector<Card*> m_vpCards;

};

最佳答案

出于兼容性和可移植性的原因,虚幻引擎使用自己的数据结构而不是标准模板库。查看 Kaiserludi 的这篇文章了解详细推理:https://forums.unrealengine.com/development-discussion/c-gameplay-programming/46700-why-doesn-t-ue-utilize-stl-containers

对于 vector ,你应该使用 TArray:https://api.unrealengine.com/INT/API/Runtime/Core/Containers/TArray/index.html

此外,当声明类型字段不是直接来自 Unreal Source 时,您应该始终声明它们 UPROPERTY() 否则带有垃圾的引擎会在您不知情的情况下收集其内存。

如果你想真正使用 std::vector,一个名叫 feixuwu 的人在他/她的 websocket 上使用了它。您可以在此处查看代码:https://github.com/feixuwu/UEWebsocket

关于c++ - 无法在虚幻引擎中使用 std::vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44468332/

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