vector 元素被push_back 后,值被修改
代码如下:
结构体的定义:
struct Pice{
double node_lod;
int x;
int y;
//Pice();
//Pice(const Pice &p):node_lod(p.node_lod), x(p.x), y(p.y){};
};
赋值,并push_back:
for(it_link,i=0;it_link!=all_linkage.end();it_link++,i++){
vector<Linkage>::iterator itt= all_linkage.begin();
for(j=0,itt;itt!=all_linkage.end();itt++,j++){
Pice temp ;
temp.x = i;
temp.y = j;
temp.node_lod = abc;
pice_link.push_back(temp);
cout << temp.x << "\t" << temp.y << "\t" << temp.node_lod <<endl;
}
}
完成后打印:
vector<struct Pice>::const_iterator it_pice_g = pice_link.begin();
for(it_pice_g;it_pice_g!=pice_link.end();it_pice_g++){
cout << "Delete arc is:\t(" << it_pice_g->x << "," << it_pice_g->y << ")" << "\t" << it_pice->node_lod<< e
ndl;
}
在赋值和push_back时,检查结果是正确的。但在完成后打印时,成员node_lod的值都被修改了。
求大侠相助!