我正在处理一些代码here.
简短的故障,它是一个基于文本的冒险,当玩家从他们的库存中删除一个项目时,vector<_invent>
(_invent
是先前声明的结构),代码在
*tempi = player_data.inventory[i];
,错误是&#34;矢量迭代器不能解除引用&#34;
我知道迭代器是一个奇特的指针。我的问题是,我应该将inventory[i]
的地址分配给tempi
吗?或者我应该将inventory[i]
的值分配给tempi
指向的对象
答案 0 :(得分:2)
您应该使用
tempi = player_data.inventory.begin()
std::advance( tempi , i );
如果player_data.inventory
是std::vector
,
简单地说,
tempi = player_data.inventory.begin() + i;