Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
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)
void enqueue (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 >
DataPointerdata_ptr () &
const DataPointerdata_ptr () const &
DataPointer && data_ptr () &&
 QList (DataPointer dd) noexcept
constexpr QList () noexcept=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))
constexpr qsizetype size () const noexcept
constexpr qsizetype count () const noexcept
constexpr qsizetype length () const noexcept
constexpr 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 ()
constexpr qsizetype max_size () const noexcept
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 constexpr qsizetype maxSize ()
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:

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>
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 20 of file qqueue.h.

◆ enqueue() [1/2]

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

Definition at line 18 of file qqueue.h.

◆ enqueue() [2/2]

template<class T>
void QQueue< T >::enqueue ( 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 19 of file qqueue.h.

◆ head() [1/2]

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 21 of file qqueue.h.

◆ head() [2/2]

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 22 of file qqueue.h.

◆ swap()

template<class T>
void QQueue< T >::swap ( QQueue< T > & other)
inlinenoexcept
Since
4.8 \memberswap{queue}

Definition at line 17 of file qqueue.h.


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