头文件中的 std::vector 声明之后的奇怪数据

Weird data after std::vector declaration in header file

本文关键字:之后 数据 声明 vector 文件 std      更新时间:2023-10-16

我有头文件,我在其中声明了向量 od 结构:

#include <d3d10.h>
#include <d3dx10.h>
#include <vector>
#include <fstream>
#include <istream> 
#include <sstream>
using namespace std;

struct bone{
    string name;
    D3DXMATRIX TransformMatrix;
};
class animator
{
public:
    animator();
    ~animator();
    vector <bone> Skeletone;
    void loadXfile(string Filename);
};

一切看起来都很好,但是当我尝试在代码中使用push_back()并进行调试时,Skeletone中的数据无法读取。当我使用相同类型的向量但在函数(tempvecbone)中本地声明时,不会出现此问题。

if (checkChar == ';'){
    tempvecbone.push_back(tempBone);
    Skeletone.push_back(tempBone);
    while (checkChar != '}')checkChar = fileIn.get();
}

从调试器链接到屏幕

有人知道发生了什么吗?

如果其他人有此问题,则是由Visual Studio项目设置中的"最大化速度(/O2)"优化引起的。它可以在项目属性 -> C/C++ -> 优化中更改(现在我设置为禁用)。