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&行
而不是
自动行
-此时您正在制作每行的临时副本而不是修改原件。

使用
自动行
而不是
自动行
-此时您正在制作每行的临时副本而不是修改原件