Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QQueue< T > Class Template Reference

\inmodule QtCore More...

#include <qqueue.h>

+ Inheritance diagram for QQueue< T >:
+ Collaboration diagram for QQueue< T >:

Public Member Functions

void swap (QQueue< T > &other) noexcept
 
void enqueue (const T &t)
 Adds value t to the tail of the queue.
 
dequeue ()
 Removes the head item in the queue and returns it.
 
T & head ()
 Returns a reference to the queue's head item.
 
const T & head () const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
- Public Member Functions inherited from QList< T >
 QList (DataPointer dd) noexcept
 
 QList ()=default
 
 QList (qsizetype size)
 
 QList (qsizetype size, parameter_type t)
 
 QList (std::initializer_list< T > args)
 
QList< T > & operator= (std::initializer_list< T > args)
 
template<typename InputIterator , if_input_iterator< InputIterator > = true>
 QList (InputIterator i1, InputIterator i2)
 
template<typename String , typename = std::enable_if_t<std::is_same_v<T, QString> && std::is_convertible_v<String, QString>>>
 QList (const String &str)
 
 QList (qsizetype size, Qt::Initialization)
 
void swap (QList &other) noexcept
 
template<typename U = T>
QTypeTraits::compare_eq_result_container< QList, U > operator== (const QList &other) const
 
template<typename U = T>
QTypeTraits::compare_eq_result_container< QList, U > operator!= (const QList &other) const
 
template<typename U = T>
QTypeTraits::compare_lt_result_container< QList, U > operator< (const QList &other) const noexcept(noexcept(std::lexicographical_compare< typename QList< U >::const_iterator, typename QList::const_iterator >(std::declval< QList< U > >().begin(), std::declval< QList< U > >().end(), other.begin(), other.end())))
 
template<typename U = T>
QTypeTraits::compare_lt_result_container< QList, U > operator> (const QList &other) const noexcept(noexcept(other< std::declval< QList< U > >()))
 
template<typename U = T>
QTypeTraits::compare_lt_result_container< QList, U > operator<= (const QList &other) const noexcept(noexcept(other< std::declval< QList< U > >()))
 
template<typename U = T>
QTypeTraits::compare_lt_result_container< QList, U > operator>= (const QList &other) const noexcept(noexcept(std::declval< QList< U > >()< other))
 
qsizetype size () const noexcept
 
qsizetype count () const noexcept
 
qsizetype length () const noexcept
 
bool isEmpty () const noexcept
 
void resize (qsizetype size)
 
void resize (qsizetype size, parameter_type c)
 
void resizeForOverwrite (qsizetype size)
 
qsizetype capacity () const
 
void reserve (qsizetype size)
 
void squeeze ()
 
void detach ()
 
bool isDetached () const noexcept
 
bool isSharedWith (const QList< T > &other) const
 
pointer data ()
 
const_pointer data () const noexcept
 
const_pointer constData () const noexcept
 
void clear ()
 
const_reference at (qsizetype i) const noexcept
 
reference operator[] (qsizetype i)
 
const_reference operator[] (qsizetype i) const noexcept
 
void append (parameter_type t)
 
void append (const_iterator i1, const_iterator i2)
 
void append (rvalue_ref t)
 
void append (const QList< T > &l)
 
void append (QList< T > &&l)
 
void prepend (rvalue_ref t)
 
void prepend (parameter_type t)
 
template<typename... Args>
reference emplaceBack (Args &&... args)
 
template<typename ... Args>
reference emplaceFront (Args &&... args)
 
iterator insert (qsizetype i, parameter_type t)
 
iterator insert (qsizetype i, qsizetype n, parameter_type t)
 
iterator insert (const_iterator before, parameter_type t)
 
iterator insert (const_iterator before, qsizetype n, parameter_type t)
 
iterator insert (const_iterator before, rvalue_ref t)
 
iterator insert (qsizetype i, rvalue_ref t)
 
QListassign (qsizetype n, parameter_type t)
 
template<typename InputIterator , if_input_iterator< InputIterator > = true>
QListassign (InputIterator first, InputIterator last)
 
QListassign (std::initializer_list< T > l)
 
template<typename ... Args>
iterator emplace (const_iterator before, Args &&... args)
 
template<typename ... Args>
iterator emplace (qsizetype i, Args &&... args)
 
void replace (qsizetype i, parameter_type t)
 
void replace (qsizetype i, rvalue_ref t)
 
void remove (qsizetype i, qsizetype n=1)
 
void removeFirst () noexcept
 
void removeLast () noexcept
 
value_type takeFirst ()
 
value_type takeLast ()
 
QList< T > & fill (parameter_type t, qsizetype size=-1)
 
template<typename AT = T>
qsizetype count (const AT &t) const noexcept
 
void removeAt (qsizetype i)
 
template<typename AT = T>
qsizetype removeAll (const AT &t)
 
template<typename AT = T>
bool removeOne (const AT &t)
 
template<typename Predicate >
qsizetype removeIf (Predicate pred)
 
takeAt (qsizetype i)
 
void move (qsizetype from, qsizetype to)
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const noexcept
 
const_iterator end () const noexcept
 
const_iterator cbegin () const noexcept
 
const_iterator cend () const noexcept
 
const_iterator constBegin () const noexcept
 
const_iterator constEnd () const noexcept
 
reverse_iterator rbegin ()
 
reverse_iterator rend ()
 
const_reverse_iterator rbegin () const noexcept
 
const_reverse_iterator rend () const noexcept
 
const_reverse_iterator crbegin () const noexcept
 
const_reverse_iterator crend () const noexcept
 
iterator erase (const_iterator begin, const_iterator end)
 
iterator erase (const_iterator pos)
 
T & first ()
 
const T & first () const noexcept
 
const T & constFirst () const noexcept
 
T & last ()
 
const T & last () const noexcept
 
const T & constLast () const noexcept
 
bool startsWith (parameter_type t) const
 
bool endsWith (parameter_type t) const
 
QList< T > mid (qsizetype pos, qsizetype len=-1) const
 
QList< T > first (qsizetype n) const
 
QList< T > last (qsizetype n) const
 
QList< T > sliced (qsizetype pos) const
 
QList< T > sliced (qsizetype pos, qsizetype n) const
 
value (qsizetype i) const
 
value (qsizetype i, parameter_type defaultValue) const
 
void swapItemsAt (qsizetype i, qsizetype j)
 
void push_back (parameter_type t)
 
void push_back (rvalue_ref t)
 
void push_front (rvalue_ref t)
 
void push_front (parameter_type t)
 
void pop_back () noexcept
 
void pop_front () noexcept
 
template<typename ... Args>
reference emplace_back (Args &&... args)
 
bool empty () const noexcept
 
reference front ()
 
const_reference front () const noexcept
 
reference back ()
 
const_reference back () const noexcept
 
void shrink_to_fit ()
 
QList< T > & operator+= (const QList< T > &l)
 
QList< T > & operator+= (QList< T > &&l)
 
QList< T > operator+ (const QList< T > &l) const &
 
QList< T > operator+ (const QList< T > &l) &&
 
QList< T > operator+ (QList< T > &&l) const &
 
QList< T > operator+ (QList< T > &&l) &&
 
QList< T > & operator+= (parameter_type t)
 
QList< T > & operator<< (parameter_type t)
 
QList< T > & operator<< (const QList< T > &l)
 
QList< T > & operator<< (QList< T > &&l)
 
QList< T > & operator+= (rvalue_ref t)
 
QList< T > & operator<< (rvalue_ref t)
 
QList< T > toList () const noexcept
 
QList< T > toVector () const noexcept
 
- Public Member Functions inherited from QListSpecialMethodsBase< T >
template<typename AT = T>
qsizetype indexOf (const AT &t, qsizetype from=0) const noexcept
 
template<typename AT = T>
qsizetype lastIndexOf (const AT &t, qsizetype from=-1) const noexcept
 
template<typename AT = T>
bool contains (const AT &t) const noexcept
 

Additional Inherited Members

- Public Types inherited from QList< T >
using Type = T
 
using value_type = T
 
using pointer = T *
 
using const_pointer = const T *
 
using reference = T &
 
using const_reference = const T &
 
using size_type = qsizetype
 
using difference_type = qptrdiff
 
using parameter_type = typename DataPointer::parameter_type
 
using rvalue_ref = typename std::conditional<DataPointer::pass_parameter_by_value, DisableRValueRefs, T &&>::type
 
using Iterator = iterator
 
using ConstIterator = const_iterator
 
using reverse_iterator = std::reverse_iterator<iterator>
 
using const_reverse_iterator = std::reverse_iterator<const_iterator>
 
- Static Public Member Functions inherited from QList< T >
static qsizetype max_size () noexcept
 
static QList< T > fromList (const QList< T > &list) noexcept
 
static QList< T > fromVector (const QList< T > &vector) noexcept
 
template<qsizetype N>
static QList< T > fromReadOnlyData (const T(&t)[N]) noexcept
 
- Protected Types inherited from QListSpecialMethodsBase< T >
using Self = QList<T>
 
- Protected Member Functions inherited from QListSpecialMethods< T >
 ~QListSpecialMethods ()=default
 
- Protected Member Functions inherited from QListSpecialMethodsBase< T >
 ~QListSpecialMethodsBase ()=default
 
Selfself ()
 
const Selfself () const
 

Detailed Description

template<class T>
class QQueue< T >

\inmodule QtCore

The QQueue class is a generic container that provides a queue.

\reentrant

QQueue<T> is one of Qt's generic \l{container classes}. It implements a queue data structure for items of a same type.

A queue is a first in, first out (FIFO) structure. Items are added to the tail of the queue using enqueue() and retrieved from the head using dequeue(). The head() function provides access to the head item without removing it.

Example:

QQueue<int> queue;
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
while (!queue.isEmpty())
cout << queue.dequeue() << endl;

The example will output 1, 2, 3 in that order.

QQueue inherits from QList. All of QList's functionality also applies to QQueue. For example, you can use isEmpty() to test whether the queue is empty, and you can traverse a QQueue using QList's iterator classes (for example, QListIterator). But in addition, QQueue provides three convenience functions that make it easy to implement FIFO semantics: enqueue(), dequeue(), and head().

QQueue's value type must be an \l{assignable data type}. This covers most data types that are commonly used, but the compiler won't let you, for example, store a QWidget as a value. Use QWidget* instead.

See also
QList, QStack

Definition at line 13 of file qqueue.h.

Member Function Documentation

◆ dequeue()

template<class T >
template< class T > T QQueue< T >::dequeue ( )
inline

Removes the head item in the queue and returns it.

This function assumes that the queue isn't empty.

This is the same as QList::takeFirst().

See also
head(), enqueue(), isEmpty()

Definition at line 19 of file qqueue.h.

References QList< T >::takeFirst().

Referenced by QQmlProfilerClientPrivate::forwardDebugMessages(), QFFmpegImageCapture::newVideoFrame(), QQmlProfilerClientPrivate::processCurrentEvent(), AVFAudioDecoder::read(), QQmlProfilerClientPrivate::resolveStackTop(), and QThreadPoolPrivate::tryStart().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ enqueue()

template<class T >
template< class T > void QQueue< T >::enqueue ( const T & t)
inline

Adds value t to the tail of the queue.

This is the same as QList::append().

See also
dequeue(), head()

Definition at line 18 of file qqueue.h.

References QList< T >::append().

Referenced by QSocks5SocketEnginePrivate::_q_udpSocketReadNotification(), QDynamicRigidBody::applyCentralForce(), QDynamicRigidBody::applyCentralImpulse(), QDynamicRigidBody::applyForce(), QDynamicRigidBody::applyImpulse(), QDynamicRigidBody::applyTorque(), QDynamicRigidBody::applyTorqueImpulse(), QFFmpegImageCapture::doCapture(), QQmlProfilerClientPrivate::processCurrentEvent(), QLowEnergyControllerPrivateBluez::readCharacteristic(), QLowEnergyControllerPrivateBluez::readDescriptor(), QDynamicRigidBody::reset(), QThreadPoolThread::run(), QHostInfoLookupManager::scheduleLookup(), Scheduler::scheduleSample(), QDynamicRigidBody::setAngularVelocity(), QDynamicRigidBody::setCenterOfMassPosition(), QDynamicRigidBody::setCenterOfMassRotation(), QDynamicRigidBody::setDensity(), QDynamicRigidBody::setGravityEnabled(), QDynamicRigidBody::setInertiaMatrix(), QDynamicRigidBody::setInertiaTensor(), QDynamicRigidBody::setIsKinematic(), QDynamicRigidBody::setLinearVelocity(), QDynamicRigidBody::setMass(), QDynamicRigidBody::setMassMode(), and QDynamicRigidBody::updateDefaultDensity().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ head() [1/2]

template<class T >
template< class T > T & QQueue< T >::head ( )
inline

Returns a reference to the queue's head item.

This function assumes that the queue isn't empty.

This is the same as QList::first().

See also
dequeue(), enqueue(), isEmpty()

Definition at line 20 of file qqueue.h.

References QList< T >::first().

Referenced by QGstreamerImageCapture::probeBuffer(), and QQmlProfilerClientPrivate::resolveStackTop().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ head() [2/2]

template<class T >
template< class T > const T & QQueue< T >::head ( ) const
inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 21 of file qqueue.h.

References QList< T >::first().

+ Here is the call graph for this function:

◆ swap()

template<class T >
template< class T > void QQueue< T >::swap ( QQueue< T > & other)
inlinenoexcept
Since
4.8

Swaps queue other with this queue. This operation is very fast and never fails.

Definition at line 17 of file qqueue.h.

References other(), and QList< T >::swap().

Referenced by Scheduler::processSamplesInQueue().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

The documentation for this class was generated from the following files: