|
@@ -48,6 +48,8 @@ public:
|
|
T& deQueue();
|
|
T& deQueue();
|
|
/* 获取队列中第一个值(下一个出队的元素),但是不出队 */
|
|
/* 获取队列中第一个值(下一个出队的元素),但是不出队 */
|
|
T& front();
|
|
T& front();
|
|
|
|
+ /* 获取队列中将要入队的位置的元素(如果队列中存储的是指针,这里就是获取这块地址的指针) */
|
|
|
|
+ T& back();
|
|
/* 获取队列大小,队列中有效值的大小 */
|
|
/* 获取队列大小,队列中有效值的大小 */
|
|
long getQueueSize();
|
|
long getQueueSize();
|
|
/* 获取队列容量 */
|
|
/* 获取队列容量 */
|
|
@@ -222,6 +224,19 @@ T& RingQueue<T>::front()
|
|
return m_queue[m_front];
|
|
return m_queue[m_front];
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+/* 获取队列中将要入队的位置的元素(如果队列中存储的是指针,这里就是获取这块地址的指针) */
|
|
|
|
+template<typename T>
|
|
|
|
+T& RingQueue<T>::back()
|
|
|
|
+{
|
|
|
|
+ std::lock_guard<std::mutex> lock(m_mutex);
|
|
|
|
+ if(isEmpty())
|
|
|
|
+ {
|
|
|
|
+ return T();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return m_queue[m_rear];
|
|
|
|
+}
|
|
|
|
+
|
|
/* 获取队列中有效值的大小 */
|
|
/* 获取队列中有效值的大小 */
|
|
template<typename T>
|
|
template<typename T>
|
|
long RingQueue<T>::getQueueSize()
|
|
long RingQueue<T>::getQueueSize()
|