给定以下代码:
for (list<Vertex*>::iterator v = vertexList->begin(); v != vertexList->end(); v++)
{
if (!(*(*v) == *u))
{
(*v)->setColor(white);
(*v)->setPred(NULL);
(*v)->setDist(INFINITY);
}
}
queue<Vertex*> Q;
Q.push(u);
Vertex* v = Q.front(); // WONT assign the item that is in the queue to v
Vertex* t = Q.front(); // WILL assign the item that is in the queue to t
如您所见,变量 V 已在 for 循环中定义,并且(至少据我所知)应该只在 for 范围内持续存在。(当 for 处于活动状态时)。
但是,当我尝试将 Q 前端分配给一个名为 V 的新变量时,它不会真正将当前位于 QUEUE 中的项目放入其中。相反,我只看到?????? 在里面。(使用视觉 STUDIO 2012)。编译成功通过。
另一方面,当我尝试将 Q 前端分配给未命名为 v 的变量时,它会让我这样做,并且 T 将保持正确的值(队列中的第一项)。
我在这里想念什么..?