C++;删除向量中的对象并将其替换为新对象 我想删除向量中的对象,并用SFMLC++项目中的新对象替换它们。当我运行程序时,旧对象消失了,没有任何东西出现在它们的位置上。 以下是createObjects函数: vector<Object> createObjects(float numberOfObjects) { vector<Object> v; v.push_back(Object()); return v; } vector createObjects(float numberOfObjects){ 向量v; v、 向后推(对象()); 返回v; }
下面是main.cpp中while(window.pollEvent(event))中的代码:C++;删除向量中的对象并将其替换为新对象 我想删除向量中的对象,并用SFMLC++项目中的新对象替换它们。当我运行程序时,旧对象消失了,没有任何东西出现在它们的位置上。 以下是createObjects函数: vector<Object> createObjects(float numberOfObjects) { vector<Object> v; v.push_back(Object()); return v; } vector createObjects(float numberOfObjects){ 向量v; v、 向后推(对象()); 返回v; },c++,vector,C++,Vector,下面是main.cpp中while(window.pollEvent(event))中的代码: if ((event.type == Event::KeyPressed) && (event.key.code == Keyboard::Hyphen)) { numberOfObjects--; v.clear(); vector<Object> v = createObjects(numberOfObjects); } if ((event.
if ((event.type == Event::KeyPressed) && (event.key.code == Keyboard::Hyphen)) {
numberOfObjects--;
v.clear();
vector<Object> v = createObjects(numberOfObjects);
}
if ((event.type == Event::KeyPressed) && (event.key.code == Keyboard::Equal)) {
numberOfObjects++;
v.clear();
vector<Objectk> v = createObjects(numberOfObjects);
}
if((event.type==event::KeyPressed)&&(event.key.code==Keyboard::Hyphen)){
对象数--;
v、 清除();
向量v=createObjects(numberOfObjects);
}
if((event.type==event::KeyPressed)&&(event.key.code==Keyboard::Equal)){
numberOfObjects++;
v、 清除();
向量v=createObjects(numberOfObjects);
}
您根本没有替换原始的向量
,而是将createObjects()
的输出分配给一个立即超出范围的本地向量
。您需要通过更改以下内容来删除分配给的本地v
变量:
vector v=createObjects(numberOfObjects);
为此:
v=createObjects(numberOfObjects);
像这样:
if((event.type==event::KeyPressed)&&(event.key.code==Keyboard::Hyphen)){
对象数--;
v、 清除();
v=createObjects(numberOfObjects);//您根本不是在替换原始的向量
,而是在将createObjects()
的输出分配给一个立即超出范围的局部向量
。您需要通过更改此项来摆脱正在分配的局部v
变量:
vector v=createObjects(numberOfObjects);
为此:
v=createObjects(numberOfObjects);
像这样:
if((event.type==event::KeyPressed)&&(event.key.code==Keyboard::Hyphen)){
对象数--;
v、 清除();
v=createObjects(numberOfObjects);//vector v=createObjects(numberOfObjects)
-你没有在createObjects中使用参数numberOfObjects
,那你为什么要使用它呢?float numberOfObjects
如果你确实使用了这个参数,并且numberOfObjects
是一个好名字,我认为你不会希望它成为一个float
。你不能创建3.1 o对象。vector v=createObjects(numberOfObjects)
-你没有在createObjects中使用参数numberOfObjects
,那你为什么要使用它呢?float numberOfObjects
如果你确实使用了这个参数,并且numberOfObjects
是一个好名字,我认为你不会希望它成为一个float
。你不能创建3.1 o对象。