每当我调用dominoes.erase()
which 类型时,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 );
}
任何帮助将不胜感激。谢谢!