取消引用向量时出现问题



我正在创建一个网格游戏,其中网格中的每个框都是一个区域,代表一些人及其特定ID。

现在我这里有一个函数,可以定位特定框中网格中确切的人的位置。

这是我的函数。

bool where(int id, int &row, int &col)const
{
person* per;
for(int i=0;i<alive.size();i++)
{
std::cout<<alive[i]<<std::endl; //This is just for testing the person number
if (alive[i]->person_id == id)
{
p = alive[i];
break;              
}
}
}

我的问题:测试代码std::cout<<alive[i]<<std::endl;始终打印号码的地址。我尝试了很多东西,但我无法弄清楚。

编辑:这里alive是一个矢量

谁能帮帮我。

考虑代码中的这一行:if (alive[i]->person_id == id).它使用->而不是.的事实表明alive不是某个结构/类的向量,而是指向某个结构/类的指针向量(或者可能充当指针的其他对象(。因此,要打印实际对象,请执行std::cout<<*alive[i]<<std::endl;(请注意添加的*(。

最新更新