小编Jer*_*gas的帖子

调用vector.erase()时出现分段错误

每当我打电话给dominoes.erase()哪种类型的std::vector<Domino>我都会出现分段错误; 即使我硬编码这个值.

一个单独的成员函数调用dominoes.push_back()加载数据,我可以用来pop_back()从向量中删除并返回一个多米诺骨牌,所以我知道那里有数据.我有一个在Domino对象上创建的复制构造函数,并且工作得很好.我把它缩小到了dominoes.erase().

Domino::Domino( const Domino &d ) {
    left = d.getHighPip();
    right = d.getLowPip();

}
Domino DominoCollection::drawDomino( void )
{

    int index = random.nextNumber( dominoes.size()  );
    Domino d( dominoes[index] );
    dominoes.erase( dominoes.begin() + index );

    return Domino( d );
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.谢谢!

c++ std stdvector

2
推荐指数
1
解决办法
1950
查看次数

标签 统计

c++ ×1

std ×1

stdvector ×1