c insert 和 push_back throw length問題

原來的樣子是

               

std::vector<int> gids;
gids.insert(gids.end(), 
            nodes[i]->getLiftFloors().begin(),
            nodes[i]->getLiftFloors().end());
flagGIDS[flag] = gids;

這樣的話會報錯

修改成這個樣子就沒事了

for (unsigned  int j= 0; j < nodes[i]->getLiftFloors().size(); ++j)
{
    gids.push_back(nodes[i]->getLiftFloors()[j]);
}
flagGIDS[flag] = gids;

這是個玄學的問題,有知道的可以幫忙解釋一下
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章