32#ifndef GOOGLETEST_SAMPLES_SAMPLE3_INL_H_
33#define GOOGLETEST_SAMPLES_SAMPLE3_INL_H_
47 friend class Queue<E>;
51 const E&
element()
const {
return element_; }
61 : element_(an_element), next_(nullptr) {}
75 Queue() : head_(nullptr), last_(nullptr), size_(0) {}
89 if (node ==
nullptr)
break;
94 head_ = last_ =
nullptr;
100 size_t Size()
const {
return size_; }
118 head_ = last_ = new_node;
121 last_->next_ = new_node;
135 head_ = head_->next_;
141 E* element =
new E(old_head->
element());
150 template <
typename F>
154 node = node->next_) {
155 new_queue->
Enqueue(function(node->element()));
Definition sample3-inl.h:46
const QueueNode * next() const
Definition sample3-inl.h:55
QueueNode * next()
Definition sample3-inl.h:54
const E & element() const
Definition sample3-inl.h:51
Definition sample3-inl.h:72
const QueueNode< E > * Head() const
Definition sample3-inl.h:104
E * Dequeue()
Definition sample3-inl.h:129
~Queue()
Definition sample3-inl.h:78
Queue * Map(F function) const
Definition sample3-inl.h:151
const QueueNode< E > * Last() const
Definition sample3-inl.h:108
QueueNode< E > * Last()
Definition sample3-inl.h:107
Queue()
Definition sample3-inl.h:75
void Enqueue(const E &element)
Definition sample3-inl.h:114
size_t Size() const
Definition sample3-inl.h:100
void Clear()
Definition sample3-inl.h:81
QueueNode< E > * Head()
Definition sample3-inl.h:103