4#include <unordered_set>
23 void push(
const T& value) {
24 if (seen_.insert(value).second) {
33 if (!queue_.empty()) {
43 return queue_.front();
51 return queue_.empty();
58 while(!queue_.empty()) queue_.pop();
64 std::unordered_set<T> seen_;
A queue that ensures each element is inserted only once.
Definition UniqueQueue.h:17
void clear()
Clears the queue and the set of seen elements.
Definition UniqueQueue.h:57
const T & front() const
Accesses the front element of the queue.
Definition UniqueQueue.h:42
void pop()
Removes the front element from the queue.
Definition UniqueQueue.h:32
void push(const T &value)
Pushes an element to the queue if it hasn't been inserted before.
Definition UniqueQueue.h:23
bool empty() const
Checks whether the queue is empty.
Definition UniqueQueue.h:50