@@ -137,10 +137,10 @@ void GameTreeRep::DeleteAction(GameAction p_action)
137137 infoset->RenumberActions ();
138138
139139 for (auto member : infoset->m_members ) {
140- DeleteTree (member->m_children [where]);
140+ DeleteTree (member->m_children [where - 1 ]);
141141 m_numNodes--;
142- member->m_children [where]->Invalidate ();
143- erase_atindex ( member->m_children , where);
142+ member->m_children [where - 1 ]->Invalidate ();
143+ member-> m_children . erase ( std::next ( member->m_children . begin () , where - 1 ) );
144144 }
145145 ClearComputedValues ();
146146 Canonicalize ();
@@ -461,10 +461,10 @@ void GameTreeRep::DeleteTree(GameNode p_node)
461461 }
462462 IncrementVersion ();
463463 while (!node->m_children .empty ()) {
464- DeleteTree (node->m_children .front ());
464+ DeleteTree (node->m_children .back ());
465465 m_numNodes--;
466- node->m_children .front ()->Invalidate ();
467- erase_atindex ( node->m_children , 1 );
466+ node->m_children .back ()->Invalidate ();
467+ node->m_children . pop_back ( );
468468 }
469469 if (node->m_infoset ) {
470470 RemoveMember (node->m_infoset , node);
@@ -738,9 +738,10 @@ Rational SubtreeSum(const GameNode &p_node)
738738 Rational sum (0 );
739739
740740 if (p_node->NumChildren () > 0 ) {
741- sum = SubtreeSum (p_node->GetChild (1 ));
742- for (size_t i = 2 ; i <= p_node->NumChildren (); i++) {
743- if (SubtreeSum (p_node->GetChild (i)) != sum) {
741+ auto children = p_node->GetChildren ();
742+ sum = SubtreeSum (children.front ());
743+ for (auto child = std::next (children.begin ()); child != children.end (); child++) {
744+ if (SubtreeSum (*child) != sum) {
744745 throw NotZeroSumException ();
745746 }
746747 }
@@ -776,17 +777,17 @@ bool GameTreeRep::IsPerfectRecall(GameInfoset &s1, GameInfoset &s2) const
776777 auto *iset2 = player->m_infosets [j - 1 ];
777778
778779 bool precedes = false ;
779- size_t action = 0 ;
780+ GameAction action = nullptr ;
780781
781782 for (size_t m = 1 ; m <= iset2->NumMembers (); m++) {
782783 size_t n;
783784 for (n = 1 ; n <= iset1->NumMembers (); n++) {
784785 if (iset2->GetMember (m)->IsSuccessorOf (iset1->GetMember (n)) &&
785786 iset1->GetMember (n) != iset2->GetMember (m)) {
786787 precedes = true ;
787- for (size_t act = 1 ; act <= iset1->NumActions (); act++ ) {
788+ for (const auto & act : iset1->GetActions () ) {
788789 if (iset2->GetMember (m)->IsSuccessorOf (iset1->GetMember (n)->GetChild (act))) {
789- if (action != 0 && action != act) {
790+ if (action != nullptr && action != act) {
790791 s1 = iset1;
791792 s2 = iset2;
792793 return false ;
0 commit comments