{pair<string,string>* ppa=new pair<string,string>;
ppa=*it;//此處只會複製rhs.wait_list的指針,大問題!!!
wait_list.push_back(ppa);
}
若此處只複製指針,那麼如果rhs.wait_list指針所指向的內容發生變化,而*this.wait_list
中的指針仍然認爲指針所指向的內容沒法變化,正如,你只知道要找的人的地址,而不知這個人是誰,如果這個人一旦搬家,你還按圖索驥,就大錯特錯。
正確代碼如下:for(vector<pair<string,string>*>::const_iterator it=rhs.wait_list.begin();it!=rhs.wait_list.end();++it)
{pair<string,string>* ppa=new pair<string,string>;
*ppa=**it;//此時複製的是*it指針所指向的對象
wait_list.push_back(ppa);
}