39 #ifdef CHECK_MEMORY_LEAKS
41 #endif // CHECK_MEMORY_LEAKS
51 MSVehicleContainer::VehicleDepartureVectorSortCrit::operator()
53 return e1.first < e2.first;
66 MSVehicleContainer::DepartFinder::operator()
68 return myTime +
DELTA_T > e.first && myTime <= e.first;
89 VehicleHeap::iterator i =
94 newElem.second.push_back(veh);
98 (*i).second.push_back(veh);
105 VehicleHeap::iterator j =
114 stored.reserve(stored.size() + cont.size());
115 copy(cont.begin(), cont.end(), back_inserter(stored));
125 for (
int i = (
int)
array.size(); i-- > 0;) {
126 assert(i < (
int)array2.size());
127 array2[i] =
array[i];
134 for (; hole > 1 && (x.first <
array[ hole / 2 ].first); hole /= 2) {
135 assert(
array.size() > (size_t) hole);
138 assert(
array.size() > (size_t) hole);
154 assert(
array.size() > 1);
155 return array[ 1 ].second;
164 assert(
array.size() > 1);
165 return array[ 1 ].first;
177 assert(
array.size() > 1);
198 assert(
array.size() > (size_t)hole);
206 if ((
array[ child ].first < tmp.first)) {
207 assert(
array.size() > (size_t) hole);
213 assert(
array.size() > (size_t) hole);
227 if (i !=
array.begin() + 1) {
230 std::cout << (*i).first;
232 std::cout << std::endl <<
"-------------------------" << std::endl;
237 strm <<
"------------------------------------" << std::endl;
240 for (MSVehicleContainer::VehicleVector::const_iterator i = v.begin(); i != v.end(); ++i) {
241 strm << (*i)->getParameter().depart << std::endl;
VehicleHeap array
The vehicle vector heap.
SUMOTime topTime() const
Returns the time the uppermost vehicle vector is assigned to.
void percolateDown(int hole)
Moves the elements down.
DepartFinder(SUMOTime time)
constructor
bool isEmpty() const
Returns the information whether the container is empty.
std::vector< SUMOVehicle * > VehicleVector
definition of a list of vehicles which have the same departure time
int currentSize
Number of elements in heap.
void pop()
Removes the uppermost vehicle vector.
Representation of a vehicle.
MSVehicleContainer(size_t capacity=10)
Constructor.
SUMOTime depart
The vehicle's departure time.
size_t size() const
Returns the size of the container.
void add(SUMOVehicle *veh)
Adds a single vehicle.
const VehicleVector & top()
Returns the uppermost vehicle vector.
virtual const SUMOVehicleParameter & getParameter() const =0
Returns the vehicle's parameter (including departure definition)
std::ostream & operator<<(std::ostream &strm, MSVehicleContainer &cont)
std::pair< SUMOTime, VehicleVector > VehicleDepartureVector
bool anyWaitingBefore(SUMOTime time) const
Returns the information whether any vehicles want to depart before the given time.
void showArray() const
Prints the container (the departure times)
void addReplacing(const VehicleDepartureVector &cont)
Replaces the existing single departure time vector by the one given.
Searches for the VehicleDepartureVector with the wished depart.
~MSVehicleContainer()
Destructor.