From bce3d3b3c8b9f91f27000149fbd04f3a7f14800e Mon Sep 17 00:00:00 2001 From: Michael Andreen Date: Sun, 26 Jun 2005 22:50:50 +0000 Subject: [PATCH] priority queue instead of a vector which is later sorted --- robber/robber.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/robber/robber.cpp b/robber/robber.cpp index 4bc0400..f586f6a 100644 --- a/robber/robber.cpp +++ b/robber/robber.cpp @@ -1,6 +1,7 @@ #include "robber.h" #include #include +#include #include using namespace std; @@ -53,7 +54,7 @@ string Robber::turn(){ continue; } - vector banks; + priority_queue banks; for(hash_map::const_iterator bank = _banks.begin(); bank != _banks.end(); ++bank){ //cerr << "Handling bank at: " << bank->first << endl; @@ -63,13 +64,15 @@ string Robber::turn(){ continue; //list::iterator i = l.begin(); //++i; - banks.push_back(bank->second/(pow(l.size(),4.0))); + banks.push(bank->second/(pow(l.size(),4.0))); } } - sort(banks.begin(),banks.end(),greater()); + //sort(banks.begin(),banks.end(),greater()); - for (unsigned int i = 0; i < 2 && i < banks.size();++i) - goodness += banks[i]; + for (unsigned int i = 0; i < 2 && banks.size() > 0;++i){ + goodness += banks.top(); + banks.pop(); + } cerr << "Goodness before cop: " << goodness << endl; if (closestCop > 2){ -- 2.39.2