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

时间:2015-01-15 17:04:25

标签: c++ vector header

我有头文件,我声明了矢量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();
}

Link to screen from debugger

任何人都知道发生了什么?

1 个答案:

答案 0 :(得分:0)

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