获取刚刚推入vector C++的元素的位置

Sat*_*own 2 c++ vector

我很好奇如何推回矢量的工作原理.我想要一种方法来推回一个元素,然后能够将它在矢量中的位置添加到作为一种地图类型的双数组中.

像这样的东西:

// Create a bomb
Bomb b;
b.currentTime = SDL_GetTicks();
b.explodeTime = SDL_GetTicks() + 3000;
b.owner = player;
b.power = 2;    
b.x = x;
b.y = y;

bombVec.push_back(b);

bombs[y][x] = THIS_IS_WHAT_I_WANT;
Run Code Online (Sandbox Code Playgroud)

这样,当我爆炸炸弹时,我可以检查地图,然后在矢量中有一个ID来处理.每个非炸弹广场都有一个-1.还有,好奇.想象一下,我在矢量中有3个元素.我删除第二个,然后添加另一个.新元素是否与删除的元素位于同一位置?

谢谢!

Die*_*Epp 5

在你之后push_back,你可以back用来获取元素.

Bomb b;
...
bombVec.push_back(b);
Bomb &bref = bombVec.back();
Run Code Online (Sandbox Code Playgroud)

或者你想索引?

强制警告:如果您推入另一个项目,并且容量不够大,则会调整矢量大小.这将使引用无效,并且如果访问引用将导致程序错误.这不是问题(1 )如果你没有调整大小,vector如果你使用list而不是(4),那么如果指针存储在(3)中则通过索引(2)访问vector.

获取索引:

size_t index = bombVec.size();
bombVec.push_back(b);
Run Code Online (Sandbox Code Playgroud)