小编ris*_*nrp的帖子

如果std :: vector元素'自杀'会发生什么(使用delete this;)?

假设有一个Items 向量

vector<Item*> items; //{item1, item2, item3}
Run Code Online (Sandbox Code Playgroud)

然后,在代码的其他部分,

items[1]->suicide();
Run Code Online (Sandbox Code Playgroud)

其中suicide函数为:

void Item::suicide()
{
   delete this;
}
Run Code Online (Sandbox Code Playgroud)

什么是items矢量大小以及它现在的排列方式?这是做呢?

编辑(我可以问一个额外的问题吗?):如果输出的所需排列是{item1, item3},大小是2,并且没有悬空指针,如何以自毁方式(从它item2自身)进行?

编辑2:谢谢你的所有答案!真棒.所以我最终决定并找到了从对象外部做到这一点的方法,因为这是一种不好的做法而且不必要地复杂化

c++ vector self-destruction

3
推荐指数
2
解决办法
1482
查看次数

算法3d轨道摄像机控制鼠标拖动

请帮忙,

我找不到关于这个不是语言特定而不依赖于库的详细解释,因为我想出于某种原因自己控制数学.

如何使用鼠标创建轨道摄像机控制,例如Google SketchUp中的中间单击拖动?

*在Google SketchUp中,通过拖动鼠标,摄像机可以在平面中心(总是0,0,0)上绕圆形轨道移动虚拟物体.它可以水平,垂直,甚至对角地沿所有方向运行.

3d geometry pseudocode game-physics

1
推荐指数
1
解决办法
1757
查看次数

标签 统计

3d ×1

c++ ×1

game-physics ×1

geometry ×1

pseudocode ×1

self-destruction ×1

vector ×1