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