@@ -64,7 +64,7 @@ std::shared_ptr<PureStrategyProfileRep> TablePureStrategyProfileRep::Copy() cons
6464 return std::make_shared<TablePureStrategyProfileRep>(*this );
6565}
6666
67- Game NewTable (const Array <int > &p_dim, bool p_sparseOutcomes /* = false*/ )
67+ Game NewTable (const std::vector <int > &p_dim, bool p_sparseOutcomes /* = false*/ )
6868{
6969 return new GameTableRep (p_dim, p_sparseOutcomes);
7070}
@@ -265,12 +265,12 @@ template class TableMixedStrategyProfileRep<Rational>;
265265// GameTableRep: Lifecycle
266266// ------------------------------------------------------------------------
267267
268- GameTableRep::GameTableRep (const Array <int > &dim, bool p_sparseOutcomes /* = false */ )
268+ GameTableRep::GameTableRep (const std::vector <int > &dim, bool p_sparseOutcomes /* = false */ )
269269 : m_results(std::accumulate(dim.begin(), dim.end(), 1 , std::multiplies<>()))
270270{
271- for (size_t pl = 1 ; pl <= dim. size (); pl++ ) {
272- m_players.push_back (new GamePlayerRep (this , pl, dim[pl] ));
273- m_players.back ()->m_label = lexical_cast<std::string>(pl );
271+ for (const auto &nstrat : dim) {
272+ m_players.push_back (new GamePlayerRep (this , m_players. size () + 1 , nstrat ));
273+ m_players.back ()->m_label = lexical_cast<std::string>(m_players. size () );
274274 std::for_each (
275275 m_players.back ()->m_strategies .begin (), m_players.back ()->m_strategies .end (),
276276 [st = 1 ](GameStrategyRep *s) mutable { s->SetLabel (lexical_cast<std::string>(st++)); });
0 commit comments