C++ c++;-deque::前推不起作用
我有一个C++ c++;-deque::前推不起作用,c++,deque,C++,Deque,我有一个std::deque rooms,我正在迭代它: for(auto row : rooms) { row.push_front(new Room()); } 但出于某种原因,它只是用新房间覆盖第一个对象,而不是在它前面插入新房间。如果我在push_front调用之前和之后记录行的大小,例如,它会先读取1,然后读取2(就好像它的行为与预期的一样),但是如果我在循环之后记录行的大小,那么行的大小将恢复为仅为1 没有太多其他的事情要做,我可以提供更多的代码,如果必要的话 在for循环
std::deque rooms
,我正在迭代它:
for(auto row : rooms) {
row.push_front(new Room());
}
但出于某种原因,它只是用新房间
覆盖第一个对象,而不是在它前面插入新房间
。如果我在push_front
调用之前和之后记录行的大小,例如,它会先读取1,然后读取2(就好像它的行为与预期的一样),但是如果我在循环之后记录行的大小,那么行的大小将恢复为仅为1
没有太多其他的事情要做,我可以提供更多的代码,如果必要的话
在for循环中是否有我不知道的事情?我从来没有看到第一个房间被毁或什么的 使用auto&row
而不是auto-row
——此时您正在制作每行的临时副本而不是修改原件。使用auto&row
而不是auto-row
——此时您正在制作每行的临时副本而不是修改原件。使用auto&行
而不是自动行
-此时您正在制作每行的临时副本而不是修改原件。使用自动行
而不是自动行
-此时您正在制作每行的临时副本而不是修改原件