我正在创建一个网格游戏,其中网格中的每个框都是一个区域,代表一些人及其特定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;
(请注意添加的*
(。