Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法在非真实引擎中使用std::vector_C++_Vector_Stl_Unreal Engine4 - Fatal编程技术网

C++ 无法在非真实引擎中使用std::vector

C++ 无法在非真实引擎中使用std::vector,c++,vector,stl,unreal-engine4,C++,Vector,Stl,Unreal Engine4,我在UE4项目中使用STL特性时遇到问题 Intellisense显示红线错误,无法理解我要写的内容 我使用VS2017,还下载了虚拟开发设置 我已经用同一个IDE在一个空白项目中测试了STL特性,它在那里工作得很好,没有intellisense问题 我假设我丢失了一些与虚幻引擎相关的特殊设置,但我不知道它是什么,并且似乎在他们的文档中找不到任何东西 谢谢 #include <vector> #include "CoreMinimal.h" #include "Interactab

我在UE4项目中使用STL特性时遇到问题

Intellisense显示红线错误,无法理解我要写的内容

我使用VS2017,还下载了虚拟开发设置

我已经用同一个IDE在一个空白项目中测试了STL特性,它在那里工作得很好,没有intellisense问题

我假设我丢失了一些与虚幻引擎相关的特殊设置,但我不知道它是什么,并且似乎在他们的文档中找不到任何东西

谢谢

#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;

};

删除保存的、二进制文件和中间文件夹,然后右键单击不真实的项目文件,选择“生成VS项目文件”,然后打开项目。希望这对我有所帮助。

出于兼容性和可移植性的原因,Unreal引擎使用自己的数据结构而不是标准模板库。 查看Kaiserludi的这篇文章,了解详细的理由:

对于vector,应使用TArray:

另外,当声明非直接来自非真实源的类型字段时,您应该始终将其声明为upperty,否则带有垃圾的引擎会在您不知道的情况下收集其内存


如果您想真正使用std::vector,那么名为feixuwu的人会在其websocket上使用它。您可以在这里查看代码:

错误在哪里,它说了什么?我找到了问题所在。事实证明,UE更喜欢您使用他们自己的容器,例如TArray,其工作原理与std::vector相同