如此奇怪的情况,我正在创建一个结构列表,然后我试图用新值更新列表成员之一,然后将其移回列表中。
我似乎能够在迭代器处复制结构的值就好了,但是当我尝试更新结构成员的值时(使用 int++;)它会在所有事物的向量类中引发异常。
任何关于这里可能发生的事情的解释都会有所帮助。
struct Blob
{
int x;
int y;
};
list<Blob> blob;
// Add a Blob to blob using .push_back(); here
for(list<Blob>::iterator iterator=blob.begin(); iterator!=blob.end(); ++iterator)
{
Blob temp;
temp.x = ((Blob)*iterator).x;
temp.y = ((Blob)*iterator).y;
if (temp.x < 10 - 1)
temp.x++; /* Exception: vector: line 932 - "Vector subscript out of range" */
((Rain)*iterator) = temp;
}