/** * Clears the queues */ void clear() { // Clear the search queue while (!q.empty()) q.pop(); // Clear edge_map edges.clear(); }
/** * Clear the queue and re-insert all known links. */ void RestartQueue() { // Clear the search queue while (!q.empty()) q.pop(); for (const auto &i : edges) q.push(Value(i.second.value, i)); }
/** * Return top element of queue for processing * * @return Node for processing */ const Node &pop() { cur = q.top().iterator; do q.pop(); while (!q.empty() && q.top().iterator->second.value < q.top().edge_value); return cur->first; }
/** * Return top element of queue for processing * * @return Node for processing */ Node Pop() { edge_const_iterator cur(q.top().iterator); current_value = cur->second.value; do { q.pop(); } while (!q.empty() && q.top().iterator->second.value < q.top().edge_value); return cur->first; }
/** * Return top element of queue for processing * * @return Node for processing */ const Node &Pop() { cur = q.top().iterator; do { // remove this item q.pop(); } while (!q.empty() && (q.top().priority > q.top().iterator->second)); // and all lower rank than this return cur->first; }
/** Clears the queues */ void Clear() { // Clear the search queue while (!q.empty()) q.pop(); // Clear the node_parent_map node_parents.clear(); // Clear the node_value_map node_values.clear(); }
/** * Clears the queues */ void Clear() { // Clear the search queue while (!q.empty()) q.pop(); // Clear EdgeMap edges.clear(); current_value = 0; }
/** * Test whether queue is empty * * @return True if no more nodes to search */ gcc_pure bool empty() const { return q.empty(); }