指向类对象的多维向量数组c ++

时间:2012-05-28 13:30:52

标签: c++ vector multidimensional-array

我不确定发生了什么,因为我对c ++相对较新

我在全局上定义了以下主循环

vector<Character*> monsters[2][3][6];
vector<Item*> loot[2][3][6];
vector<NPC*> npc[2][3][6];
vector<Objects*> objects[2][3][6];

在我的Character.h文件中,我还定义了对象数组

extern vector<Objects*> objects[2][3][6];

在创建对象数组之前,一切正常 看来如果我向怪物数组添加8个以上的对象,奇怪的值开始出现在对象中,对象的大小也会增加。
我的代码很乱,我不确定我应该在这里包含什么。我希望这足以让你了解我的目标。

我没有彻底测试过,所以我的所有阵列都可能发生这种情况......

2 个答案:

答案 0 :(得分:0)

看起来怪物数组不够大,所以它“溢出”并将对象放在数组之外,从而最终在另一个数组中。

抱歉给您带来不便。我希望这有助于某人。

答案 1 :(得分:0)

最终,您希望编写适合您需求的小型Grid类,或使用Boost.MultiArray来处理此类情况。从长远来看,使用嵌套的原始数组会导致混乱。也许你也想避免按值存储指针和存储对象。