Spec-Zone.ru › Qt 6.1

Класс QVarLengthArray

шаблон <typename T, qsizetype Prealloc> class QVarLengthArray

Класс QVarLengthArray предоставляет массив переменной длины низкого уровня. Подробнее...

Заголовок: #include <QVarLengthArray>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются повторно входящими.

Типы

const_iterator
const_pointer
const_reference
const_reverse_iterator
difference_type
iterator
pointer
reference
reverse_iterator
size_type
value_type

Общедоступные функции

QVarLengthArray(InputIterator first, InputIterator last)
QVarLengthArray(std::initializer_list<T> args)
QVarLengthArray(QVarLengthArray<T, Prealloc> &&other = Prealloc)
QVarLengthArray(const QVarLengthArray<T, Prealloc> &other = Prealloc)
QVarLengthArray(qsizetype size)
QVarLengthArray<T, Prealloc> & operator=(QVarLengthArray<T, Prealloc> &&other = Prealloc)
QVarLengthArray<T, Prealloc> & operator=(const QVarLengthArray<T, Prealloc> &other = Prealloc)
~QVarLengthArray()
void append(const T &t)
void append(T &&t)
void append(const T *buf, qsizetype size)
const T & at(qsizetype i) const
T & back()
const T & back() const
QVarLengthArray::iterator begin()
QVarLengthArray::const_iterator begin() const
qsizetype capacity() const
QVarLengthArray::const_iterator cbegin() const
QVarLengthArray::const_iterator cend() const
void clear()
QVarLengthArray::const_iterator constBegin() const
const T * constData() const
QVarLengthArray::const_iterator constEnd() const
bool contains(const AT &value) const
qsizetype count() const
QVarLengthArray::const_reverse_iterator crbegin() const
QVarLengthArray::const_reverse_iterator crend() const
T * data()
const T * data() const
bool empty() const
QVarLengthArray::iterator end()
QVarLengthArray::const_iterator end() const
QVarLengthArray::iterator erase(QVarLengthArray::const_iterator pos)
QVarLengthArray::iterator erase(QVarLengthArray::const_iterator begin, QVarLengthArray::const_iterator end)
T & first()
const T & first() const
T & front()
const T & front() const
qsizetype indexOf(const AT &value, qsizetype from = 0) const
void insert(qsizetype i, T &&value)
void insert(qsizetype i, const T &value)
void insert(qsizetype i, qsizetype count, const T &value)
QVarLengthArray::iterator insert(QVarLengthArray::const_iterator before, qsizetype count, const T &value)
QVarLengthArray::iterator insert(QVarLengthArray::const_iterator before, T &&value)
QVarLengthArray::iterator insert(QVarLengthArray::const_iterator before, const T &value)
bool isEmpty() const
T & last()
const T & last() const
qsizetype lastIndexOf(const AT &value, qsizetype from = -1) const
qsizetype length() const
void pop_back()
void prepend(T &&value)
void prepend(const T &value)
void push_back(const T &t)
void push_back(T &&t)
QVarLengthArray::reverse_iterator rbegin()
QVarLengthArray::const_reverse_iterator rbegin() const
void remove(qsizetype i)
void remove(qsizetype i, qsizetype count)
qsizetype удалитьВсе(const AT &t)
qsizetype удалитьЕсли(Predicate pred)
void удалитьПоследний()
bool удалитьОдин(const AT &t)
QVarLengthArray::reverse_iterator rend()
QVarLengthArray::const_reverse_iterator rend() const
void заменить(qsizetype i, const T &value)
void зарезервировать(qsizetype size)
void изменитьРазмер(qsizetype size)
void сжатьДоРазмерности()
qsizetype размер() const
void сжать()
T значение(qsizetype i) const
T значение(qsizetype i, const T &defaultValue) const
QVarLengthArray<T, Prealloc> & +=(const T &value)
QVarLengthArray<T, Prealloc> & +=(T &&value)
QVarLengthArray<T, Prealloc> & вставить(const T &value)
QVarLengthArray<T, Prealloc> & вставить(T &&value)
QVarLengthArray<T, Prealloc> & operator=(std::initializer_list<T> list)
T & оператор[](qsizetype i)
const T & оператор[](qsizetype i) const

Связанные нечленные функции

qsizetype удалить(QVarLengthArray<T, Prealloc> &array = Prealloc, const AT &t)
qsizetype удалитьЕсли(QVarLengthArray<T, Prealloc> &array = Prealloc, Predicate pred)
size_t qHash(const QVarLengthArray<T, Prealloc> &key = Prealloc, size_t seed = 0)
bool !=(const QVarLengthArray<T, Prealloc1> &left = Prealloc1, const QVarLengthArray<T, Prealloc2> &right = Prealloc2)
bool operator<(const QVarLengthArray<T, Prealloc1> &lhs = Prealloc1, const QVarLengthArray<T, Prealloc2> &rhs = Prealloc2)
bool operator<=(const QVarLengthArray<T, Prealloc1> &lhs = Prealloc1, const QVarLengthArray<T, Prealloc2> &rhs = Prealloc2)
bool operator==(const QVarLengthArray<T, Prealloc1> &left = Prealloc1, const QVarLengthArray<T, Prealloc2> &right = Prealloc2)
bool operator>(const QVarLengthArray<T, Prealloc1> &lhs = Prealloc1, const QVarLengthArray<T, Prealloc2> &rhs = Prealloc2)
bool operator>=(const QVarLengthArray<T, Prealloc1> &lhs = Prealloc1, const QVarLengthArray<T, Prealloc2> &rhs = Prealloc2)

Подробное описание

Язык C++ не поддерживает массивы переменной длины в стеке. Например, следующий код не будет компилироваться:

int myfunc(int n)
{
    int table[n + 1];  // WRONG
    ...
    return table[n];
}

Альтернативой является выделение массива в куче (с new):

int myfunc(int n)
{
    int *table = new int[n + 1];
    ...
    int ret = table[n];
    delete[] table;
    return ret;
}

Однако, если myfunc() вызывается очень часто из внутреннего цикла приложения, выделение в куче может стать основной причиной замедления.

QVarLengthArray — это попытка обойти этот пробел в языке C++. Он выделяет определённое количество элементов в стеке, и если вы изменяете размер массива на больший, он автоматически использует кучу. Выделение в стеке имеет преимущество, заключающееся в том, что оно намного быстрее, чем выделение в куче.

Пример:

int myfunc(int n)
{
    QVarLengthArray<int, 1024> array(n + 1);
    ...
    return array[n];
}

В приведённом выше примере QVarLengthArray предварительно выделит 1024 элемента в стеке и будет использовать их, если n + 1 больше, чем 1024. Если вы опустите второй шаблонный аргумент, будет использоваться значение по умолчанию QVarLengthArray — 256.

Тип значения QVarLengthArray должен быть типом, допускающим присваивание. Это охватывает большинство типов данных, которые обычно используются, но компилятор не позволит вам, например, хранить QWidget в качестве значения; вместо этого храните указатель на QWidget.

QVarLengthArray, как и QList, обеспечивает структуру данных изменяемого массива. Основные отличия между этими двумя классами:

  • API QVarLengthArray намного более низкого уровня и ему не хватает некоторых функций QList.
  • QVarLengthArray не инициализирует память, если значение — это базовый тип. (QList всегда делает это.)
  • QList использует неявное совместное использование в качестве оптимизации памяти. QVarLengthArray не предоставляет эту функцию; однако, он обычно обеспечивает немного лучшую производительность благодаря снижению накладных расходов, особенно в плотных циклах.

Подводя итог, QVarLengthArray — это оптимизирующий класс низкого уровня, который имеет смысл только в очень специфических случаях. Он используется в нескольких местах внутри Qt и был добавлен в общедоступный API Qt для удобства опытных пользователей.

См. также QList.

Документация по типам-членам

QVarLengthArray::const_iterator

Тип-синоним для const T *. Предоставлено для совместимости со STL.

QVarLengthArray::const_pointer

Тип-синоним для const T *. Предоставлено для совместимости со STL.

QVarLengthArray::const_reference

Тип-синоним для const T &. Предоставлено для совместимости со STL.

[since 5.6] QVarLengthArray::const_reverse_iterator

Тип-синоним для std::reverse_iterator<const T*>. Предоставлено для совместимости со STL.

Этот тип-синоним был введён в Qt 5.6.

QVarLengthArray::difference_type

Тип-синоним для ptrdiff_t. Предоставлено для совместимости со STL.

QVarLengthArray::iterator

Тип-синоним для T *. Предоставлено для совместимости со STL.

QVarLengthArray::pointer

Тип-синоним для T *. Предоставлено для совместимости со STL.

QVarLengthArray::reference

Тип-синоним для T &. Предоставлено для совместимости со STL.

[since 5.6] QVarLengthArray::reverse_iterator

Тип-синоним для std::reverse_iterator<T*>. Предоставлено для совместимости со STL.

Этот тип-синоним был введён в Qt 5.6.

QVarLengthArray::size_type

Тип-синоним для int. Предоставлено для совместимости со STL.

QVarLengthArray::value_type

Тип-синоним для T. Предоставлено для совместимости со STL.

Документация по функциям-членам

QVarLengthArray::iterator QVarLengthArray::insert(QVarLengthArray::const_iterator before, T &&value)

QVarLengthArray::iterator QVarLengthArray::insert(QVarLengthArray::const_iterator before, const T &value)

Это перегруженный метод.

Вставляет value перед элементом, на который указывает итератор before. Возвращает итератор, указывающий на вставленный элемент.

void QVarLengthArray::insert(qsizetype i, T &&value)

void QVarLengthArray::insert(qsizetype i, const T &value)

Вставляет value в массив по индексу i. Если i равно 0, значение добавляется в начало вектора. Если i равно size(), значение добавляется в конец вектора.

Для больших массивов эта операция может быть медленной (время выполнения — линейное), так как требует перемещения всех элементов с индексами i и выше на одну позицию дальше в памяти. Если вам нужен класс контейнера с быстрой функцией insert(), используйте std::list вместо него.

См. также remove().

void QVarLengthArray::prepend(T &&value)

void QVarLengthArray::prepend(const T &value)

Вставляет value в начало массива.

Это то же самое, что vector.insert(0, value).

Для больших массивов эта операция может быть медленной (время выполнения — линейное), так как требует перемещения всех элементов вектора на одну позицию дальше в памяти. Если вам нужен класс контейнера с быстрой функцией prepend(), используйте std::list вместо него.

См. также append() и insert().

[since 5.14] template <typename InputIterator> QVarLengthArray::QVarLengthArray(InputIterator first, InputIterator last)

Создает массив со содержимым в диапазоне итераторов [first, last).

Тип значения InputIterator должен быть приводим к типу T.

Эта функция была добавлена в Qt 5.14.

[since 5.5] QVarLengthArray::QVarLengthArray(std::initializer_list<T> args)

Создаёт массив из std::initializer_list, заданной args.

Этот конструктор активен только если компилятор поддерживает C++11 initializer lists.

Эта функция была добавлена в Qt 5.5.

[since 6.0] QVarLengthArray::QVarLengthArray(QVarLengthArray<T, Prealloc> &&other = Prealloc)

Перемещающий конструктор этого массива переменной длины из other. После перемещения other становится пустым.

Эта функция была добавлена в Qt 6.0.

QVarLengthArray::QVarLengthArray(const QVarLengthArray<T, Prealloc> &other = Prealloc)

Создаёт копию other.

QVarLengthArray::QVarLengthArray(qsizetype size)

Создаёт массив с начальным размером size элементов.

Если тип значения является примитивным типом (например, char, int, float) или типом указателя (например, QWidget *), элементы не инициализируются. Для других типов элементы инициализируются с помощью значения по умолчанию.

[since 6.0] QVarLengthArray<T, Prealloc> &QVarLengthArray::operator=(QVarLengthArray<T, Prealloc> &&other = Prealloc)

Перемещающее присваивание other этому массиву и возвращает ссылку на этот массив. После перемещения other становится пустым.

Эта функция была добавлена в Qt 6.0.

QVarLengthArray<T, Prealloc> &QVarLengthArray::operator=(const QVarLengthArray<T, Prealloc> &other = Prealloc)

Присваивает other этому массиву и возвращает ссылку на этот массив.

QVarLengthArray::~QVarLengthArray()

Уничтожает массив.

void QVarLengthArray::append(const T &t)

Добавляет элемент t в массив, увеличивая массив при необходимости.

См. также removeLast().

[since 5.9] void QVarLengthArray::append(T &&t)

Этот метод перегружает append.

Примечание: В отличие от перегрузки append для lvalue, передача ссылки на объект, который уже является элементом *this приводит к неопределённому поведению:

vla.append(std::move(vla[0])); // BUG: passing an object that is already in the container

Эта функция была добавлена в Qt 5.9.

void QVarLengthArray::append(const T *buf, qsizetype size)

Добавляет size элементов, ссылающихся на buf в этот массив.

const T &QVarLengthArray::at(qsizetype i) const

Возвращает ссылку на элемент по индексу i.

i должен быть корректным индексом в массиве (т.е., 0 <= i < size()).

См. также value() и operator[]().

[since 5.0] T &QVarLengthArray::back()

То же, что и last(). Предоставлено для совместимости со STL.

Эта функция была добавлена в Qt 5.0.

[since 5.0] const T &QVarLengthArray::back() const

Это перегруженный метод.

Эта функция была добавлена в Qt 5.0.

QVarLengthArray::iterator QVarLengthArray::begin()

Возвращает итератор STL, указывающий на первый элемент массива.

См. также constBegin() и end().

QVarLengthArray::const_iterator QVarLengthArray::begin() const

Это перегруженный метод.

qsizetype QVarLengthArray::capacity() const

Возвращает максимальное количество элементов, которое может храниться в массиве без принудительного перераспределения.

Единственная цель этой функции — предоставить способ точной настройки использования памяти QVarLengthArray. Как правило, вам редко понадобится вызывать эту функцию. Если вы хотите узнать, сколько элементов содержится в массиве, вызовите size().

См. также reserve() и squeeze().

[since 5.0] QVarLengthArray::const_iterator QVarLengthArray::cbegin() const

Возвращает постоянный итератор STL, указывающий на первый элемент массива.

Эта функция была добавлена в Qt 5.0.

См. также begin() и cend().

[since 5.0] QVarLengthArray::const_iterator QVarLengthArray::cend() const

Возвращает постоянный итератор STL, указывающий на воображаемый элемент после последнего элемента в массиве.

Эта функция была добавлена в Qt 5.0.

См. также cbegin() и end().

void QVarLengthArray::clear()

Удаляет все элементы из массива.

То же, что и resize(0).

QVarLengthArray::const_iterator QVarLengthArray::constBegin() const

Возвращает постоянный итератор STL, указывающий на первый элемент массива.

См. также begin() и constEnd().

const T *QVarLengthArray::constData() const

Возвращает постоянный указатель на данные, хранящиеся в массиве. Указатель может использоваться для доступа к элементам массива. Указатель остаётся допустимым до тех пор, пока массив не перераспределяется.

Эта функция полезна в основном для передачи массива функции, которая принимает обычный массив C++.

См. также data() и operator[]().

QVarLengthArray::const_iterator QVarLengthArray::constEnd() const

Возвращает константный итератор STL-стиля, указывающий на воображаемый элемент после последнего элемента в массиве.

См. также constBegin() и end().

[since 5.3] template <typename AT> bool QVarLengthArray::contains(const AT &value) const

Возвращает true, если массив содержит вхождение value; в противном случае возвращает false.

Эта функция требует, чтобы тип значения имел реализацию operator==().

Эта функция была добавлена в Qt 5.3.

См. также indexOf() и lastIndexOf().

qsizetype QVarLengthArray::count() const

То же, что и size().

См. также isEmpty() и resize().

[since 5.6] QVarLengthArray::const_reverse_iterator QVarLengthArray::crbegin() const

Возвращает константный итератор STL-стиля обратного поиска, указывающий на первый элемент в массиве переменной длины в обратном порядке.

Эта функция была добавлена в Qt 5.6.

См. также begin(), rbegin() и rend().

[since 5.6] QVarLengthArray::const_reverse_iterator QVarLengthArray::crend() const

Возвращает константный итератор STL-стиля обратного поиска, указывающий на элемент, следующий за последним элементом в массиве переменной длины, в обратном порядке.

Эта функция была добавлена в Qt 5.6.

См. также end(), rend() и rbegin().

T *QVarLengthArray::data()

Возвращает указатель на данные, хранящиеся в массиве. Указатель можно использовать для доступа к элементам и их изменения в массиве.

Пример:

QVarLengthArray<int> array(10);
int *data = array.data();
for (int i = 0; i < 10; ++i)
    data[i] = 2 * i;

Указатель остается действительным до тех пор, пока массив не перераспределяется.

Эта функция в основном полезна для передачи массива функции, принимающей обычный массив C++.

См. также constData() и operator[]().

const T *QVarLengthArray::data() const

Это перегруженная функция.

[since 5.0] bool QVarLengthArray::empty() const

Возвращает true, если размер массива равен 0; в противном случае возвращает false.

То же, что и isEmpty(). Предоставлено для совместимости со STL.

Эта функция была добавлена в Qt 5.0.

QVarLengthArray::iterator QVarLengthArray::end()

Возвращает итератор STL-стиля, указывающий на воображаемый элемент после последнего элемента в массиве.

См. также begin() и constEnd().

QVarLengthArray::const_iterator QVarLengthArray::end() const

Это перегруженная функция.

QVarLengthArray::iterator QVarLengthArray::erase(QVarLengthArray::const_iterator pos)

Удаляет элемент, на который указывает итератор pos, из вектора и возвращает итератор на следующий элемент в векторе (который может быть end()).

См. также insert() и remove().

QVarLengthArray::iterator QVarLengthArray::erase(QVarLengthArray::const_iterator begin, QVarLengthArray::const_iterator end)

Это перегруженная функция.

Удаляет все элементы от begin до (но не включая) end. Возвращает итератор на тот же элемент, на который end ссылался до вызова.

T &QVarLengthArray::first()

Возвращает ссылку на первый элемент в массиве. Массив не должен быть пустым. Если массив может быть пустым, проверьте isEmpty() перед вызовом этой функции.

См. также last() и isEmpty().

const T &QVarLengthArray::first() const

Это перегруженная функция.

[since 5.0] T &QVarLengthArray::front()

То же, что и first(). Предоставлено для совместимости со STL.

Эта функция была добавлена в Qt 5.0.

[since 5.0] const T &QVarLengthArray::front() const

Это перегруженная функция.

Эта функция была добавлена в Qt 5.0.

[since 5.3] template <typename AT> qsizetype QVarLengthArray::indexOf(const AT &value, qsizetype from = 0) const

Возвращает индекс первого вхождения value в массиве, выполняя поиск вперед с индекса from. Возвращает -1, если элемент не найден.

Эта функция требует, чтобы тип значения имел реализацию operator==().

Эта функция была добавлена в Qt 5.3.

См. также lastIndexOf() и contains().

void QVarLengthArray::insert(qsizetype i, qsizetype count, const T &value)

Это перегруженная функция.

Вставляет count копий value в позицию с индексом i в векторе.

QVarLengthArray::iterator QVarLengthArray::insert(QVarLengthArray::const_iterator before, qsizetype count, const T &value)

Вставляет count копий value перед элементом, на который указывает итератор before. Возвращает итератор, указывающий на первый из вставленных элементов.

bool QVarLengthArray::isEmpty() const

Возвращает true, если размер массива равен 0; в противном случае возвращает false.

См. также size() и resize().

T &QVarLengthArray::last()

Возвращает ссылку на последний элемент в массиве. Массив не должен быть пустым. Если массив может быть пустым, проверьте isEmpty() перед вызовом этой функции.

См. также first() и isEmpty().

const T &QVarLengthArray::last() const

Это перегруженная функция.

[since 5.3] template <typename AT> qsizetype QVarLengthArray::lastIndexOf(const AT &value, qsizetype from = -1) const

Возвращает индекс последнего вхождения значения value в массиве, выполняя поиск назад с индекса from. Если from равно -1 (по умолчанию), поиск начинается с последнего элемента. Возвращает -1, если элемент не найден.

Эта функция требует, чтобы тип значения имел реализацию operator==().

Эта функция была добавлена в Qt 5.3.

См. также indexOf() и contains().

[since 5.0] qsizetype QVarLengthArray::length() const

То же, что и size().

Эта функция была добавлена в Qt 5.0.

См. также isEmpty() и resize().

[since 5.0] void QVarLengthArray::pop_back()

То же, что и removeLast(). Предоставлено для совместимости со STL.

Эта функция была добавлена в Qt 5.0.

[since 5.0] void QVarLengthArray::push_back(const T &t)

Добавляет элемент t в массив, расширяя массив при необходимости. Предоставлено для совместимости со STL.

Эта функция была добавлена в Qt 5.0.

[since 5.9] void QVarLengthArray::push_back(T &&t)

Эта функция перегружает push_back.

Примечание: В отличие от перегрузки push_back() для lvalue, передача ссылки на объект, который уже является элементом *this приводит к неопределенному поведению:

vla.push_back(std::move(vla[0])); // BUG: passing an object that is already in the container

Эта функция была добавлена в Qt 5.9.

[since 5.6] QVarLengthArray::reverse_iterator QVarLengthArray::rbegin()

Возвращает обратный итератор STL, указывающий на первый элемент в массиве переменной длины в обратном порядке.

Эта функция была добавлена в Qt 5.6.

См. также begin(), crbegin() и rend().

[since 5.6] QVarLengthArray::const_reverse_iterator QVarLengthArray::rbegin() const

Это перегруженная функция.

Эта функция была добавлена в Qt 5.6.

void QVarLengthArray::remove(qsizetype i)

Это перегруженная функция.

Удаляет элемент по индексу i.

См. также insert() и replace().

void QVarLengthArray::remove(qsizetype i, qsizetype count)

Это перегруженная функция.

Удаляет count элементов из середины массива, начиная с позиции i.

См. также insert() и replace().

[since 6.1] template <typename AT> qsizetype QVarLengthArray::removeAll(const AT &t)

Удаляет все элементы, которые равны t, из массива. Возвращает количество удаленных элементов (если таковые имеются).

Эта функция была добавлена в Qt 6.1.

См. также removeOne().

[since 6.1] template <typename Predicate> qsizetype QVarLengthArray::removeIf(Predicate pred)

Удаляет все элементы, для которых предикат pred возвращает true, из массива. Возвращает количество удаленных элементов (если таковые имеются).

Эта функция была добавлена в Qt 6.1.

См. также removeAll().

void QVarLengthArray::removeLast()

Уменьшает размер массива на единицу. Выделенная память не меняется.

См. также append().

[since 6.1] template <typename AT> bool QVarLengthArray::removeOne(const AT &t)

Удаляет первый элемент, равный t, из массива. Возвращает true, если элемент был удален, в противном случае false.

Эта функция была добавлена в Qt 6.1.

См. также removeAll().

[since 5.6] QVarLengthArray::reverse_iterator QVarLengthArray::rend()

Возвращает обратный итератор STL, указывающий на позицию после последнего элемента в массиве переменной длины в обратном порядке.

Эта функция была добавлена в Qt 5.6.

См. также end(), crend() и rbegin().

[since 5.6] QVarLengthArray::const_reverse_iterator QVarLengthArray::rend() const

Это перегруженная функция.

Эта функция была добавлена в Qt 5.6.

void QVarLengthArray::replace(qsizetype i, const T &value)

Заменяет элемент по индексу i значением value.

i должен быть допустимым индексом в массиве (т.е., 0 <= i < size()).

См. также operator[]() и remove().

void QVarLengthArray::reserve(qsizetype size)

Попытка выделить память для как минимум size элементов. Если заранее известно, какой максимальный размер может быть у массива, можно вызвать эту функцию. Частое использование resize() может улучшить производительность. Если size является заниженной оценкой, худшим результатом будет незначительное замедление работы QVarLengthArray.

Единственная цель этой функции — дать возможность точной настройки использования памяти QVarLengthArray. Как правило, вам редко понадобится вызывать эту функцию. Если нужно изменить размер массива, используйте resize().

См. также capacity() и squeeze().

void QVarLengthArray::resize(qsizetype size)

Устанавливает размер массива в size. Если size больше текущего размера, элементы добавляются в конец. Если size меньше текущего размера, элементы удаляются с конца.

Если тип значения является примитивным типом (например, char, int, float) или типом указателя (например, QWidget *), новые элементы не инициализируются. Для других типов элементы инициализируются с помощью значения по умолчанию.

См. также size() и squeeze().

[since 5.10] void QVarLengthArray::shrink_to_fit()

То же, что и squeeze(). Предоставлено для совместимости со STL.

Эта функция была добавлена в Qt 5.10.

qsizetype QVarLengthArray::size() const

Возвращает количество элементов в массиве.

См. также isEmpty() и resize().

[since 5.1] void QVarLengthArray::squeeze()

Освобождает любую память, не необходимую для хранения элементов. Если контейнер может поместить свое хранилище в стековой памяти, он освободит кучевую память и скопирует элементы обратно в стек.

Единственная цель этой функции — дать возможность точной настройки использования памяти QVarLengthArray. Как правило, вам редко понадобится вызывать эту функцию.

Эта функция была добавлена в Qt 5.1.

См. также reserve(), capacity() и resize().

T QVarLengthArray::value(qsizetype i) const

Возвращает значение по индексу i.

Если индекс i выходит за пределы массива, функция возвращает значение по умолчанию. Если вы уверены, что i находится в пределах массива, можно использовать at(), что немного быстрее.

См. также at() и operator[]().

T QVarLengthArray::value(qsizetype i, const T &defaultValue) const

Это перегруженная функция.

Если индекс i выходит за пределы массива, функция возвращает defaultValue.

QVarLengthArray<T, Prealloc> &QVarLengthArray::operator+=(const T &value)

Добавляет value в конец массива и возвращает ссылку на этот массив.

См. также append() и operator<<().

[since 5.11] QVarLengthArray<T, Prealloc> &QVarLengthArray::operator+=(T &&value)

Это перегруженная функция.

Эта функция была добавлена в Qt 5.11.

См. также append() и operator<<().

QVarLengthArray<T, Prealloc> &QVarLengthArray::operator<<(const T &value)

Добавляет value в конец массива и возвращает ссылку на этот массив.

См. также append() и operator+=().

[since 5.11] QVarLengthArray<T, Prealloc> &QVarLengthArray::operator<<(T &&value)

Это перегруженная функция.

Эта функция была добавлена в Qt 5.11.

См. также append() и operator+=().

[since 5.5] QVarLengthArray<T, Prealloc> &QVarLengthArray::operator=(std::initializer_list<T> list)

Присваивает значения из list этому массиву и возвращает ссылку на этот массив.

Этот конструктор доступен только если компилятор поддерживает C++11 списки инициализации.

Эта функция была добавлена в Qt 5.5.

T &QVarLengthArray::operator[](qsizetype i)

Возвращает ссылку на элемент по индексу i.

i должен быть допустимым индексом в массиве (т.е., 0 <= i < size()).

См. также data() и at().

const T &QVarLengthArray::operator[](qsizetype i) const

Это перегруженная функция.

Связанные нечлен-функции

[since 6.1] template <typename T, qsizetype Prealloc, typename AT> qsizetype erase(QVarLengthArray<T, Prealloc> &array = Prealloc, const AT &t)

Удаляет из массива array все элементы, равные t. Возвращает количество удаленных элементов (если таковые имеются).

Примечание: t не может ссылаться на элемент внутри array. Если вы не уверены, что это не так, сделайте копию t и вызовите эту функцию с копией.

Эта функция была добавлена в Qt 6.1.

См. также erase_if().

[since 6.1] template <typename T, qsizetype Prealloc, typename Predicate> qsizetype erase_if(QVarLengthArray<T, Prealloc> &array = Prealloc, Predicate pred)

Удаляет из массива array все элементы, для которых предикат pred возвращает true. Возвращает количество удаленных элементов (если таковые имеются).

Эта функция была добавлена в Qt 6.1.

См. также erase().

[since 5.14] template <typename T, qsizetype Prealloc> size_t qHash(const QVarLengthArray<T, Prealloc> &key = Prealloc, size_t seed = 0)

Возвращает хэш-значение для key, используя seed для инициализации вычислений.

Эта функция была добавлена в Qt 5.14.

template <typename T, qsizetype Prealloc1, qsizetype Prealloc2> bool operator!=(const QVarLengthArray<T, Prealloc1> &left = Prealloc1, const QVarLengthArray<T, Prealloc2> &right = Prealloc2)

Возвращает true, если два массива, заданные left и right, не равны.

Два массива считаются равными, если они содержат одинаковые значения в том же порядке.

Для этой функции требуется реализация operator==() для типа значения.

См. также operator==().

[since 5.6] template <typename T, qsizetype Prealloc1, qsizetype Prealloc2> bool operator<(const QVarLengthArray<T, Prealloc1> &lhs = Prealloc1, const QVarLengthArray<T, Prealloc2> &rhs = Prealloc2)

Возвращает true если массив переменной длины lhs лексикографически меньше rhs; в противном случае возвращает false.

Для этой функции требуется реализация operator<() для типа значения.

Эта функция была добавлена в Qt 5.6.

[since 5.6] template <typename T, qsizetype Prealloc1, qsizetype Prealloc2> bool operator<=(const QVarLengthArray<T, Prealloc1> &lhs = Prealloc1, const QVarLengthArray<T, Prealloc2> &rhs = Prealloc2)

Возвращает true если массив переменной длины lhs лексикографически меньше или равен rhs; в противном случае возвращает false.

Для этой функции требуется реализация operator<() для типа значения.

Эта функция была добавлена в Qt 5.6.

template <typename T, qsizetype Prealloc1, qsizetype Prealloc2> bool operator==(const QVarLengthArray<T, Prealloc1> &left = Prealloc1, const QVarLengthArray<T, Prealloc2> &right = Prealloc2)

Возвращает true если два массива, заданные left и right, равны.

Два массива считаются равными, если они содержат одинаковые значения в том же порядке.

Для этой функции требуется реализация operator==() для типа значения.

См. также operator!=().

[since 5.6] template <typename T, qsizetype Prealloc1, qsizetype Prealloc2> bool operator>(const QVarLengthArray<T, Prealloc1> &lhs = Prealloc1, const QVarLengthArray<T, Prealloc2> &rhs = Prealloc2)

Возвращает true если массив переменной длины lhs лексикографически больше rhs; в противном случае возвращает false.

Для этой функции требуется реализация operator<() для типа значения.

Эта функция была добавлена в Qt 5.6.

[since 5.6] template <typename T, qsizetype Prealloc1, qsizetype Prealloc2> bool operator>=(const QVarLengthArray<T, Prealloc1> &lhs = Prealloc1, const QVarLengthArray<T, Prealloc2> &rhs = Prealloc2)

Возвращает true если массив переменной длины lhs лексикографически больше или равен rhs; в противном случае возвращает false.

Для этой функции требуется реализация operator<() для типа значения.

Эта функция была добавлена в Qt 5.6.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qvarlengtharray.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API