Класс QCborMap
Класс QCborMap используется для хранения ассоциативного контейнера, представимого в формате CBOR. Подробнее...
| Заголовок: | #include <QCborMap> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| С момента: | Qt 5.12 |
Примечание: Все функции в этом классе являются повторно входящими.
Типы публичного доступа
| класс | ConstIterator |
| класс | Iterator |
| const_итератор | |
| итератор | |
| тип_ключа | |
| тип_отображения | |
| тип_размера | |
| тип_значения |
Публичные функции
| QCborMap(std::initializer_list<value_type> args) | |
| QCborMap(const QCborMap &other) | |
| QCborMap() | |
| QCborMap & | operator=(const QCborMap &other) |
| ~QCborMap() | |
| QCborMap::iterator | begin() |
| QCborMap::const_iterator | begin() const |
| QCborMap::const_iterator | cbegin() const |
| QCborMap::const_iterator | cend() const |
| void | clear() |
| int | compare(const QCborMap &other) const |
| QCborMap::const_iterator | constBegin() const |
| QCborMap::const_iterator | constEnd() const |
| QCborMap::const_iterator | constFind(qint64 key) const |
| QCborMap::const_iterator | constFind(QLatin1String key) const |
| QCborMap::const_iterator | constFind(const QString &key) const |
| QCborMap::const_iterator | constFind(const QCborValue &key) const |
| bool | contains(qint64 key) const |
| bool | contains(QLatin1String key) const |
| bool | contains(const QString &key) const |
| bool | contains(const QCborValue &key) const |
| bool | empty() const |
| QCborMap::iterator | end() |
| QCborMap::const_iterator | end() const |
| QCborMap::iterator | erase(QCborMap::const_iterator it) |
| QCborMap::iterator | erase(QCborMap::iterator it) |
| QCborValue | extract(QCborMap::iterator it) |
| QCborValue | extract(QCborMap::const_iterator it) |
| QCborMap::iterator | find(qint64 key) |
| QCborMap::iterator | find(QLatin1String key) |
| QCborMap::iterator | find(const QString &key) |
| QCborMap::iterator | find(const QCborValue &key) |
| QCborMap::const_iterator | find(qint64 key) const |
| QCborMap::const_iterator | find(QLatin1String key) const |
| QCborMap::const_iterator | find(const QString &key) const |
| QCborMap::const_iterator | find(const QCborValue &key) const |
| QCborMap::iterator | insert(qint64 key, const QCborValue &value) |
| QCborMap::iterator | insert(QLatin1String key, const QCborValue &value) |
| QCborMap::iterator | insert(const QString &key, const QCborValue &value) |
| QCborMap::iterator | insert(const QCborValue &key, const QCborValue &value) |
| QCborMap::iterator | insert(QCborMap::value_type v) |
| bool | isEmpty() const |
| QList<QCborValue> | keys() const |
| void | remove(qint64 key) |
| void | remove(QLatin1String key) |
| void | remove(const QString &key) |
| void | remove(const QCborValue &key) |
| qsizetype | size() const |
| void | swap(QCborMap &other) |
| QCborValue | take(qint64 key) |
| QCborValue | take(QLatin1String key) |
| QCborValue | take(const QString &key) |
| QCborValue | take(const QCborValue &key) |
| QCborValue | toCborValue() const |
| QJsonObject | toJsonObject() const |
| QVariantHash | toVariantHash() const |
| QVariantMap | toVariantMap() const |
| QCborValue | value(qint64 key) const |
| QCborValue | value(QLatin1String key) const |
| QCborValue | value(const QString &key) const |
| QCborValue | value(const QCborValue &key) const |
| bool | operator!=(const QCborMap &other) const |
| bool | operator<(const QCborMap &other) const |
| bool | operator==(const QCborMap &other) const |
| const QCborValue | operator[](qint64 key) const |
| const QCborValue | operator[](QLatin1String key) const |
| const QCborValue | operator[](const QString &key) const |
| const QCborValue | operator[](const QCborValue &key) const |
| QCborValueRef | operator[](qint64 key) |
| QCborValueRef | operator[](QLatin1String key) |
| QCborValueRef | operator[](const QString &key) |
| QCborValueRef | operator[](const QCborValue &key) |
Статические публичные члены
| QCborMap | fromJsonObject(const QJsonObject &obj) |
| QCborMap | fromVariantHash(const QVariantHash &hash) |
| QCborMap | fromVariantMap(const QVariantMap &map) |
Подробное описание
Этот класс можно использовать для хранения ассоциативного контейнера в CBOR, отображения ключа на тип значения. CBOR — это компактное двоичное представление объектов, очень компактная форма двоичного кодирования данных, являющаяся надмножеством JSON. Он был создан рабочей группой IETF Constrained RESTful Environments (CoRE), которая использовала его во многих новых RFC. Он предназначен для использования вместе с протоколом CoAP.
В отличие от JSON и QVariantMap, ключи карты CBOR могут быть любого типа, а не только строк. По этой причине QCborMap фактически является отображением между ключами QCborValue и элементами значения QCborValue.
Однако для всех функций-членов, принимающих параметр ключа, QCborMap предоставляет перегрузки, которые будут эффективно работать с целыми числами и строками. Фактически, использование целочисленных ключей рекомендуется, поскольку они занимают меньше байтов для передачи и проще для кодирования и декодирования. Более новые протоколы, разработанные рабочей группой IETF CoRE, предназначенные для работы именно с CBOR, известны тем, что используют их.
QCborMap не отсортирован, поэтому поиск ключей имеет линейную сложность (O(n)). QCborMap на самом деле сохраняет элементы в том порядке, в котором они были вставлены, что означает, что можно создать отсортированные QCborMap, тщательно вставляя элементы в отсортированном порядке. CBOR не требует сортировки, но рекомендует ее.
QCborMap также может быть преобразован в QVariantMap и QJsonObject и из них. Однако при выполнении преобразования любые ключи, не являющиеся строками, будут строфицированы с помощью одностороннего метода, который преобразование обратно в QCborMap не отменит.
См. также QCborArray, QCborValue, QJsonDocument и QVariantMap.
Документация типов членов
QCborMap::const_iterator
Синоним для QCborMap::ConstIterator
QCborMap::iterator
Синоним для QCborMap::Iterator.
QCborMap::key_type
Тип ключа для этой карты. Поскольку ключи QCborMap могут быть любого типа CBOR, это QCborValue.
QCborMap::mapped_type
Тип, который сопоставляется (значение), то есть QCborValue.
QCborMap::size_type
Тип, который QCborMap использует для размеров.
QCborMap::value_type
Значение, хранящееся в этом контейнере: пара QCborValues
Документация функций-членов
QCborValue QCborMap::extract(QCborMap::const_iterator it)
QCborValue QCborMap::extract(QCborMap::iterator it)
Извлекает значение из карты по указанному итератором it положению и возвращает извлечённое значение.
См. также insert(), erase(), take() и remove().
QCborMap::iterator QCborMap::find(const QCborValue &key)
QCborMap::const_iterator QCborMap::find(const QCborValue &key) const
Это перегруженная функция.
Возвращает итератор карты к паре ключ-значение, ключ которой равен key, если такая пара существует в карте. Если нет, функция возвращает end().
Если в карте имеется более одного ключа, равного key, не определено, какой из них найдёт эта функция. QCborMap не допускает вставки дублирующих ключей, но создать такую карту можно, декодировав поток CBOR с ними. Обычно они не допускаются, и наличие дублирующих ключей обычно указывает на проблему в отправителе.
value(qint64), value(QLatin1String), value(const QString &)
См. также value(const QCborValue &), operator[](const QCborValue &), constFind(const QCborValue &), remove(const QCborValue &) и contains(const QCborValue &).
QCborMap::iterator QCborMap::find(const QString &key)
QCborMap::const_iterator QCborMap::find(const QString &key) const
Это перегруженная функция.
Возвращает итератор карты к паре ключ-значение, ключ которой равен key, если такая пара существует в карте. Если нет, функция возвращает end().
Если в карте имеется более одного ключа, равного key, не определено, какой из них найдёт эта функция. QCborMap не допускает вставки дублирующих ключей, но создать такую карту можно, декодировав поток CBOR с ними. Обычно они не допускаются, и наличие дублирующих ключей обычно указывает на проблему в отправителе.
value(qint64), value(QLatin1String), value(const QCborValue &)
См. также value(const QString &), operator[](const QString &), constFind(const QString &), remove(const QString &) и contains(const QString &).
QCborMap::iterator QCborMap::find(QLatin1String key)
QCborMap::const_iterator QCborMap::find(QLatin1String key) const
Это перегруженная функция.
Возвращает итератор карты к паре ключ-значение, ключ которой равен key, если такая пара существует в карте. Если нет, функция возвращает end().
Если в карте имеется более одного ключа, равного key, не определено, какой из них найдёт эта функция. QCborMap не допускает вставки дублирующих ключей, но создать такую карту можно, декодировав поток CBOR с ними. Обычно они не допускаются, и наличие дублирующих ключей обычно указывает на проблему в отправителе.
value(qint64), value(const QString &), value(const QCborValue &)
См. также value(QLatin1String), operator[](QLatin1String), constFind(QLatin1String), remove(QLatin1String) и contains(QLatin1String).
QCborMap::iterator QCborMap::find(qint64 key)
QCborMap::const_iterator QCborMap::find(qint64 key) const
Возвращает итератор карты для пары ключ-значение, у которой ключ равен key, если такая пара присутствует в карте. Если нет, эта функция возвращает end().
CBOR рекомендует использовать целочисленные ключи, так как они занимают меньше места и проще кодируются и декодируются.
Если в карте присутствуют более одного ключа, равного key, то не определено, какой из них найдёт эта функция. QCborMap не допускает вставки дублирующихся ключей, но создать такую карту можно, декодировав CBOR-поток с ними. Обычно дублирование ключей недопустимо и является признаком проблемы в отправителе.
value(QLatin1String), value(const QString &), value(const QCborValue &)
См. также value(qint64), operator[](qint64), constFind(qint64), remove(qint64), и contains(qint64).
QCborMap::QCborMap(std::initializer_list<value_type> args)
Создаёт QCborMap с элементами из списка инициализации в args, как в следующем примере:
QCborMap map = {
{0, "Hello"},
{1, "World"},
{"foo", nullptr},
{"bar", QCborArray{0, 1, 2, 3, 4}}
}; QCborMap::QCborMap(const QCborMap &other)
Создаёт объект QCborMap, являющийся копией other.
QCborMap::QCborMap()
Создаёт пустой объект CBOR-карты.
См. также isEmpty().
QCborMap &QCborMap::operator=(const QCborMap &other)
Заменяет содержимое этого объекта копией other, затем возвращает ссылку на этот объект.
QCborMap::~QCborMap()
Удаляет этот объект QCborMap и освобождает все связанные ресурсы, которые он владеет.
QCborMap::iterator QCborMap::begin()
Возвращает итератор карты, указывающий на первую пару ключ-значение в этой карте. Если карта пустая, возвращаемый итератор будет таким же, как end().
См. также constBegin() и end().
QCborMap::const_iterator QCborMap::begin() const
Возвращает итератор карты, указывающий на первую пару ключ-значение в этой карте. Если карта пустая, возвращаемый итератор будет таким же, как constEnd().
См. также begin() и constEnd().
QCborMap::const_iterator QCborMap::cbegin() const
Возвращает итератор карты, указывающий на первую пару ключ-значение в этой карте. Если карта пустая, возвращаемый итератор будет таким же, как constEnd().
См. также begin() и constEnd().
QCborMap::const_iterator QCborMap::cend() const
Возвращает итератор карты, представляющий элемент, расположенный сразу после последнего элемента в карте.
См. также begin(), constBegin(), find(), и constFind().
void QCborMap::clear()
Очищает эту карту.
См. также isEmpty().
int QCborMap::compare(const QCborMap &other) const
Сравнивает эту карту и other, сравнивая каждый элемент последовательно, и возвращает целое число, указывающее, должна ли эта карта сортироваться перед (если результат отрицательный) или после other (если результат положительный). Если функция возвращает 0, две карты равны и содержат одинаковые элементы.
Обратите внимание, что CBOR-карты не упорядочены, что означает, что две карты, содержащие одни и те же пары, но в разном порядке, всё равно будут сравниваться по-разному. Чтобы избежать этого, рекомендуется вставлять элементы в карту в предсказуемом порядке, например, по возрастанию значения ключа. Фактически, карты с ключами в отсортированном порядке необходимы для представления канонического CBOR.
Дополнительную информацию о порядке сортировки CBOR см. в QCborValue::compare().
См. также QCborValue::compare(), QCborArray::compare(), и operator==().
QCborMap::const_iterator QCborMap::constBegin() const
Возвращает итератор карты, указывающий на первую пару ключ-значение в этой карте. Если карта пустая, возвращаемый итератор будет таким же, как constEnd().
См. также begin() и constEnd().
QCborMap::const_iterator QCborMap::constEnd() const
Возвращает итератор карты, представляющий элемент, расположенный сразу после последнего элемента в карте.
См. также begin(), constBegin(), find(), и constFind().
QCborMap::const_iterator QCborMap::constFind(qint64 key) const
Возвращает итератор карты для пары ключ-значение, у которой ключ равен key, если такая пара присутствует в карте. Если нет, эта функция возвращает constEnd().
CBOR рекомендует использовать целочисленные ключи, так как они занимают меньше места и проще кодируются и декодируются.
Если в карте присутствуют более одного ключа, равного key, то не определено, какой из них найдёт эта функция. QCborMap не допускает вставки дублирующихся ключей, но создать такую карту можно, декодировав CBOR-поток с ними. Обычно дублирование ключей недопустимо и является признаком проблемы в отправителе.
value(QLatin1String), value(const QString &), value(const QCborValue &)
См. также value(qint64), operator[](qint64), find(qint64), remove(qint64), и contains(qint64).
QCborMap::const_iterator QCborMap::constFind(QLatin1String key) const
Это перегруженная функция.
Возвращает итератор карты для пары ключ-значение, у которой ключ равен key, если такая пара присутствует в карте. Если нет, эта функция возвращает constEnd().
Если в карте присутствуют более одного ключа, равного key, то не определено, какой из них найдёт эта функция. QCborMap не допускает вставки дублирующихся ключей, но создать такую карту можно, декодировав CBOR-поток с ними. Обычно дублирование ключей недопустимо и является признаком проблемы в отправителе.
value(qint64), value(const QString &), value(const QCborValue &)
См. также value(QLatin1String), operator[](QLatin1String), find(QLatin1String), remove(QLatin1String), и contains(QLatin1String).
QCborMap::const_iterator QCborMap::constFind(const QString &key) const
Это перегруженная функция.
Возвращает итератор карты для пары ключ-значение, у которой ключ равен key, если такая пара присутствует в карте. Если нет, эта функция возвращает constEnd().
Если в карте присутствуют более одного ключа, равного key, то не определено, какой из них найдёт эта функция. QCborMap не допускает вставки дублирующихся ключей, но создать такую карту можно, декодировав CBOR-поток с ними. Обычно дублирование ключей недопустимо и является признаком проблемы в отправителе.
value(qint64), value(QLatin1String), value(const QCborValue &)
См. также value(const QString &), operator[](const QString &), find(const QString &), remove(const QString &), и contains(const QString &).
QCborMap::const_iterator QCborMap::constFind(const QCborValue &key) const
Это перегруженная функция.
Возвращает итератор карты для пары ключ-значение, у которой ключ равен key, если такая пара присутствует в карте. Если нет, эта функция возвращает constEnd().
Если карта содержит более одного ключа, равного key, не определено, какой из них найдет эта функция. QCborMap не разрешает вставка дублирующихся ключей, но возможно создание такой карты путем декодирования CBOR потока с ними. Обычно они не допускаются, и наличие дублирующихся ключей обычно указывает на проблему в отправителе.
См. также value(const QCborValue &), operator[](const QCborValue &), find(const QCborValue &), remove(const QCborValue &), contains(const QCborValue &), value(qint64), value(QLatin1String), и value(const QString &).
bool QCborMap::contains(qint64 key) const
Возвращает true, если в этой карте есть пара ключ-значение, идентифицированная ключом key. CBOR рекомендует использовать целочисленные ключи, так как они занимают меньше места и проще кодируются и декодируются.
См. также value(qint64), operator[](qint64), find(qint64), remove(qint64), contains(QLatin1String), remove(const QString &), и remove(const QCborValue &).
bool QCborMap::contains(QLatin1String key) const
Это перегруженная функция.
Возвращает true, если в этой карте есть пара ключ-значение, идентифицированная ключом key.
См. также value(QLatin1String), operator[](QLatin1String), find(QLatin1String), remove(QLatin1String), contains(qint64), remove(const QString &), и remove(const QCborValue &).
bool QCborMap::contains(const QString &key) const
Это перегруженная функция.
Возвращает true, если в этой карте есть пара ключ-значение, идентифицированная ключом key.
См. также value(const QString &), operator[](const QString &), find(const QString &), remove(const QString &), contains(qint64), remove(QLatin1String), и remove(const QCborValue &).
bool QCborMap::contains(const QCborValue &key) const
Возвращает true, если в этой карте есть пара ключ-значение, идентифицированная ключом key.
См. также value(const QCborValue &), operator[](const QCborValue &), find(const QCborValue &), remove(const QCborValue &), contains(qint64), remove(QLatin1String), и remove(const QString &).
bool QCborMap::empty() const
Синоним для isEmpty(). Эта функция предоставляется для совместимости с общим кодом, использующим API стандартной библиотеки.
Возвращает true, если эта карта пуста (size() == 0).
QCborMap::iterator QCborMap::end()
Возвращает итератор карты, представляющий элемент, расположенный сразу за последним элементом в карте.
См. также begin(), constBegin(), find(), и constFind().
QCborMap::const_iterator QCborMap::end() const
Возвращает итератор карты, представляющий элемент, расположенный сразу за последним элементом в карте.
См. также begin(), constBegin(), find(), и constFind().
QCborMap::iterator QCborMap::erase(QCborMap::const_iterator it)
Удаляет пару ключ-значение, на которую указывает итератор карты it, и возвращает указатель на следующий элемент после удаления.
См. также remove(), begin(), end(), insert(), и extract().
QCborMap::iterator QCborMap::erase(QCborMap::iterator it)
Это перегруженная функция.
Удаляет пару ключ-значение, на которую указывает итератор карты it, и возвращает указатель на следующий элемент после удаления.
См. также remove(), begin(), end(), и insert().
[static] QCborMap QCborMap::fromJsonObject(const QJsonObject &obj)
Преобразует все JSON элементы, найденные в объекте obj, в CBOR с помощью QCborValue::fromJson() и возвращает карту, составленную из этих элементов.
Это преобразование без потерь, так как система типов CBOR является надмножеством JSON. Кроме того, карту, возвращаемую этой функцией, можно преобразовать обратно в исходный obj с помощью toJsonObject().
См. также toJsonObject(), toVariantMap(), QCborValue::fromJsonValue(), и QCborArray::fromJsonArray().
[static] QCborMap QCborMap::fromVariantHash(const QVariantHash &hash)
Преобразует все элементы в hash в CBOR с использованием QCborValue::fromVariant() и возвращает карту, составленную из этих элементов.
Преобразование из QVariant не является полностью без потерь. Подробнее см. документацию в QCborValue::fromVariant().
См. также toVariantHash(), fromVariantMap(), fromJsonObject(), и QCborValue::fromVariant().
[static] QCborMap QCborMap::fromVariantMap(const QVariantMap &map)
Преобразует все элементы в map в CBOR с использованием QCborValue::fromVariant() и возвращает карту, составленную из этих элементов.
Преобразование из QVariant не является полностью без потерь. Подробнее см. документацию в QCborValue::fromVariant().
См. также toVariantMap(), fromVariantHash(), fromJsonObject(), и QCborValue::fromVariant().
QCborMap::iterator QCborMap::insert(qint64 key, const QCborValue &value)
Это перегруженная функция.
Вставляет ключ key и значение value в эту карту и возвращает итератор карты, указывающий на новую вставленную пару.
Если в карте уже был ключ, равный key, его значение будет перезаписано значением value.
См. также erase(), remove(qint64), value(qint64), operator[](qint64), find(qint64), contains(qint64), take(qint64), и extract().
QCborMap::iterator QCborMap::insert(QLatin1String key, const QCborValue &value)
Это перегруженная функция.
Вставляет ключ key и значение value в эту карту и возвращает итератор карты, указывающий на новую вставленную пару.
Если в карте уже был ключ, равный key, его значение будет перезаписано значением value.
См. также erase(), remove(QLatin1String), value(QLatin1String), operator[](QLatin1String), find(QLatin1String), contains(QLatin1String), take(QLatin1String), и extract().
QCborMap::iterator QCborMap::insert(const QString &key, const QCborValue &value)
Это перегруженная функция.
Вставляет ключ key и значение value в эту карту и возвращает итератор карты, указывающий на новую вставленную пару.
Если в карте уже был ключ, равный key, его значение будет перезаписано значением value.
См. также erase(), remove(const QString &), value(const QString &), operator[](const QString &), find(const QString &), contains(const QString &), take(const QString &) и extract().
QCborMap::iterator QCborMap::insert(const QCborValue &key, const QCborValue &value)
Это перегруженная функция.
Вставляет ключ key и значение value в этот массив и возвращает итератор карты, указывающий на только что вставленную пару.
Если в карте уже был ключ, равный key, его значение будет перезаписано значением value.
См. также erase(), remove(const QCborValue &), value(const QCborValue &), operator[](const QCborValue &), find(const QCborValue &), contains(const QCborValue &), take(const QCborValue &) и extract().
QCborMap::iterator QCborMap::insert(QCborMap::value_type v)
Это перегруженная функция.
Вставляет пару ключ-значение из v в этот массив и возвращает итератор карты, указывающий на только что вставленную пару.
Если в карте уже был ключ, равный v.first, его значение будет перезаписано значением v.second.
См. также operator[], erase() и extract().
bool QCborMap::isEmpty() const
Возвращает true, если этот массив пуст (т.е., size() равно 0).
QList<QCborValue> QCborMap::keys() const
Возвращает список всех ключей в этом массиве.
См. также QMap::keys() и QHash::keys().
void QCborMap::remove(qint64 key)
Удаляет ключ key и соответствующее значение из карты, если он найден. Если в карте такого ключа нет, эта функция ничего не делает.
Если в карте есть более одного ключа, равного key, не определено, какой из них функция удалит. QCborMap не допускает вставки дублирующихся ключей, но создать такую карту можно, декодируя CBOR-поток с ними. Обычно это недопустимо, и наличие дублирующихся ключей обычно указывает на проблему в отправителе.
remove(QLatin1String), remove(const QString &), remove(const QCborValue &)
См. также value(qint64), operator[](qint64), find(qint64) и contains(qint64).
void QCborMap::remove(QLatin1String key)
Это перегруженная функция.
Удаляет ключ key и соответствующее значение из карты, если он найден. Если в карте такого ключа нет, эта функция ничего не делает.
Если в карте есть более одного ключа, равного key, не определено, какой из них функция удалит. QCborMap не допускает вставки дублирующихся ключей, но создать такую карту можно, декодируя CBOR-поток с ними. Обычно это недопустимо, и наличие дублирующихся ключей обычно указывает на проблему в отправителе.
remove(qint64), remove(const QString &), remove(const QCborValue &)
См. также value(QLatin1String), operator[](QLatin1String), find(QLatin1String) и contains(QLatin1String).
void QCborMap::remove(const QString &key)
Это перегруженная функция.
Удаляет ключ key и соответствующее значение из карты, если он найден. Если в карте такого ключа нет, эта функция ничего не делает.
Если в карте есть более одного ключа, равного key, не определено, какой из них функция удалит. QCborMap не допускает вставки дублирующихся ключей, но создать такую карту можно, декодируя CBOR-поток с ними. Обычно это недопустимо, и наличие дублирующихся ключей обычно указывает на проблему в отправителе.
remove(qint64), remove(QLatin1String), remove(const QCborValue &)
См. также value(const QString &), operator[](const QString &), find(const QString &) и contains(const QString &).
void QCborMap::remove(const QCborValue &key)
Удаляет ключ key и соответствующее значение из карты, если он найден. Если в карте такого ключа нет, эта функция ничего не делает.
Если в карте есть более одного ключа, равного key, не определено, какой из них функция удалит. QCborMap не допускает вставки дублирующихся ключей, но создать такую карту можно, декодируя CBOR-поток с ними. Обычно это недопустимо, и наличие дублирующихся ключей обычно указывает на проблему в отправителе.
remove(qint64), remove(QLatin1String), remove(const QString &)
См. также value(const QCborValue &), operator[](const QCborValue &), find(const QCborValue &) и contains(const QCborValue &).
qsizetype QCborMap::size() const
Возвращает количество элементов в этом массиве.
См. также isEmpty().
void QCborMap::swap(QCborMap &other)
Меняет содержимое этого массива и other.
QCborValue QCborMap::take(qint64 key)
Удаляет ключ key и соответствующее значение из карты и возвращает значение, если оно найдено. Если в карте такого ключа нет, эта функция ничего не делает.
Если в карте есть более одного ключа, равного key, не определено, какой из них функция удалит. QCborMap не допускает вставки дублирующихся ключей, но создать такую карту можно, декодируя CBOR-поток с ними. Обычно это недопустимо, и наличие дублирующихся ключей обычно указывает на проблему в отправителе.
См. также value(qint64), operator[](qint64), find(qint64), contains(qint64), take(QLatin1String), take(const QString &), take(const QCborValue &) и insert().
QCborValue QCborMap::take(QLatin1String key)
Удаляет ключ key и соответствующее значение из карты и возвращает значение, если оно найдено. Если в карте такого ключа нет, эта функция ничего не делает.
Если в карте есть более одного ключа, равного key, не определено, какой из них функция удалит. QCborMap не допускает вставки дублирующихся ключей, но создать такую карту можно, декодируя CBOR-поток с ними. Обычно это недопустимо, и наличие дублирующихся ключей обычно указывает на проблему в отправителе.
См. также value(QLatin1String), operator[](QLatin1String), find(QLatin1String), contains(QLatin1String), take(qint64), take(const QString &), take(const QCborValue &) и insert().
QCborValue QCborMap::take(const QString &key)
Удаляет ключ key и соответствующее значение из карты и возвращает значение, если оно найдено. Если в карте такого ключа нет, эта функция ничего не делает.
Если в карте есть более одного ключа, равного key, не определено, какой из них функция удалит. QCborMap не допускает вставки дублирующихся ключей, но создать такую карту можно, декодируя CBOR-поток с ними. Обычно это недопустимо, и наличие дублирующихся ключей обычно указывает на проблему в отправителе.
См. также value(const QString &), operator[](const QString &), find(const QString &), contains(const QString &), take(QLatin1String), take(qint64), take(const QCborValue &) и insert().
QCborValue QCborMap::take(const QCborValue &key)
Удаляет ключ key и соответствующее значение из карты и возвращает значение, если оно найдено. Если в карте нет такого ключа, эта функция ничего не делает.
Если карта содержит более одного ключа, равного key, не определено, какой из них функция удалит. QCborMap не разрешает вставку дублирующихся ключей, но создать такую карту можно, декодировав CBOR-поток с ними. Обычно такие ключи не допускаются, и наличие дублирующихся ключей обычно указывает на проблему у отправителя.
См. также value(const QCborValue &), operator[](const QCborValue &), find(const QCborValue &), contains(const QCborValue &), take(QLatin1String), take(const QString &), take(qint64) и insert().
QCborValue QCborMap::toCborValue() const
Явно создает объект QCborValue, представляющий эту карту. Эта функция обычно не нужна, поскольку у QCborValue есть конструктор для QCborMap, поэтому преобразование неявное.
Преобразование QCborMap в QCborValue позволяет использовать его в любом контексте, где можно использовать QCborValues, включая в качестве ключей и отображаемых типов в QCborMap, а также в QCborValue::toCbor().
См. также QCborValue::QCborValue(const QCborMap &).
QJsonObject QCborMap::toJsonObject() const
Рекурсивно преобразует каждое значение QCborValue в этой карте в JSON с помощью QCborValue::toJsonValue() и создаёт строковый ключ для всех ключей, которые не являются строками, а затем возвращает соответствующий QJsonObject, составленный из этих сопоставлений.
Обратите внимание, что CBOR содержит более богатый и широкий набор типов, чем JSON, поэтому некоторые данные могут быть потеряны при этом преобразовании. Более подробную информацию о применяемых преобразованиях см. в QCborValue::toJsonValue().
Преобразование ключей карты в строки
JSON-объекты определены как имеющие строковые ключи, в отличие от CBOR, поэтому преобразование QCborMap в QJsonObject подразумевает этап «строкового представления» значений ключей. Преобразование будет использовать специальную обработку тегов и расширенных типов, описанных выше, и также преобразует остальные типы следующим образом:
| Тип | Преобразование |
|---|---|
| Булево | "true" и "false" |
| Null | "null" |
| Undefined | "undefined" |
| Целое число | Десятичная строковая форма числа |
| Двойное число | Десятичная строковая форма числа |
| Массив байтов | Если не помечено иначе (см. выше), закодировано как Base64url |
| Массив | Заменено компактной формой его диагностической записи |
| Карта | Заменено компактной формой его диагностической записи |
| Теги и расширенные типы | Номер тега отбрасывается, а помеченное значение преобразуется в строку |
См. также fromJsonObject(), QCborValue::toJsonValue(), QCborArray::toJsonArray() и toVariantMap().
QVariantHash QCborMap::toVariantHash() const
Преобразует значения CBOR в QVariant с помощью QCborValue::toVariant() и «строкового представления» всех CBOR-ключей в этой карте, возвращая QVariantHash, которая является результатом этого списка сопоставлений.
QVariantMaps имеют строковые ключи, в отличие от CBOR, поэтому преобразование QCborMap в QVariantMap подразумевает этап «строкового представления» значений ключей. См. QCborMap::toJsonObject() для получения дополнительной информации.
Кроме того, преобразование в QVariant не является полностью без потерь. Дополнительную информацию см. в документации QCborValue::toVariant().
См. также fromVariantHash(), toVariantMap(), toJsonObject(), QCborValue::toVariant() и QCborArray::toVariantList().
QVariantMap QCborMap::toVariantMap() const
Преобразует значения CBOR в QVariant с помощью QCborValue::toVariant() и «строкового представления» всех CBOR-ключей в этой карте, возвращая QVariantMap, которая является результатом этого списка сопоставлений.
QVariantMaps имеют строковые ключи, в отличие от CBOR, поэтому преобразование QCborMap в QVariantMap подразумевает этап «строкового представления» значений ключей. См. QCborMap::toJsonObject() для получения дополнительной информации.
Кроме того, преобразование в QVariant не является полностью без потерь. Дополнительную информацию см. в документации QCborValue::toVariant().
См. также fromVariantMap(), toVariantHash(), toJsonObject(), QCborValue::toVariant() и QCborArray::toVariantList().
QCborValue QCborMap::value(qint64 key) const
Возвращает элемент QCborValue в этой карте, соответствующий ключу key, если таковой имеется. CBOR рекомендует использовать целочисленные ключи, поскольку они занимают меньше места и проще кодируются и декодируются.
Если в карте нет ключа key, эта функция возвращает QCborValue с неопределённым значением. По этой причине с помощью этой функции невозможно отличить случай, когда ключ отсутствует, от случая, когда ключ был сопоставлен с неопределённым значением.
Если карта содержит более одного ключа, равного key, не определено, к какому из них функция вернёт ссылку. QCborMap не разрешает вставку дублирующихся ключей, но создать такую карту можно, декодировав CBOR-поток с ними. Обычно такие ключи не допускаются, и наличие дублирующихся ключей обычно указывает на проблему у отправителя.
value(QLatin1String), value(const QString &), value(const QCborValue &)
См. также operator[](qint64), find(qint64), constFind(qint64), remove(qint64) и contains(qint64).
QCborValue QCborMap::value(QLatin1String key) const
Это перегруженная функция.
Возвращает элемент QCborValue в этой карте, соответствующий ключу key, если таковой имеется.
Если в карте нет ключа key, эта функция возвращает QCborValue с неопределённым значением. По этой причине с помощью этой функции невозможно отличить случай, когда ключ отсутствует, от случая, когда ключ был сопоставлен с неопределённым значением.
Если карта содержит более одного ключа, равного key, не определено, какой из них эта функция вернёт. QCborMap не разрешает вставку дублирующихся ключей, но создать такую карту можно, декодировав CBOR-поток с ними. Обычно такие ключи не допускаются, и наличие дублирующихся ключей обычно указывает на проблему у отправителя.
value(qint64), value(const QString &), value(const QCborValue &)
См. также operator[](QLatin1String), find(QLatin1String), constFind(QLatin1String), remove(QLatin1String) и contains(QLatin1String).
QCborValue QCborMap::value(const QString &key) const
Это перегруженная функция.
Возвращает элемент QCborValue в этой карте, соответствующий ключу key, если таковой имеется.
Если в карте нет ключа key, эта функция возвращает QCborValue с неопределённым значением. По этой причине с помощью этой функции невозможно отличить случай, когда ключ отсутствует, от случая, когда ключ был сопоставлен с неопределённым значением.
Если карта содержит более одного ключа, равного key, не определено, какой из них эта функция вернёт. QCborMap не разрешает вставку дублирующихся ключей, но создать такую карту можно, декодировав CBOR-поток с ними. Обычно такие ключи не допускаются, и наличие дублирующихся ключей обычно указывает на проблему у отправителя.
value(qint64), value(QLatin1String), value(const QCborValue &)
См. также operator[](const QString &), find(const QString &), constFind(const QString &), remove(const QString &) и contains(const QString &).
QCborValue QCborMap::value(const QCborValue &key) const
Возвращает элемент QCborValue в этом отображении, соответствующий ключу key, если такой есть.
Если отображение не содержит ключ key, эта функция возвращает QCborValue со значением неопределённого типа. По этой причине с помощью этой функции нельзя различить ситуацию, когда ключа не было, от ситуации, когда ключу было сопоставлено значение неопределённого типа.
Если отображение содержит более одного ключа, равного key, неопределённо, какой из них функция вернёт. QCborMap не допускает вставки дублирующих ключей, но создать такое отображение можно, декодировав CBOR-поток с ними. Такие ключи обычно не допускаются, и наличие дублирующих ключей обычно указывает на проблему у отправителя.
value(qint64), value(QLatin1String), value(const QString &)
См. также operator[](const QCborValue &), find(const QCborValue &), constFind(const QCborValue &), remove(const QCborValue &), и contains(const QCborValue &).
bool QCborMap::operator!=(const QCborMap &other) const
Сравнивает это отображение и other, сравнивая каждый элемент последовательно, и возвращает true, если два отображения содержат какие-либо разные элементы или элементы в разном порядке, в противном случае возвращает false.
Обратите внимание, что CBOR-отображения не упорядочены, что означает, что два отображения, содержащие одни и те же пары, но в разном порядке, всё равно будут сравниваться по-разному. Чтобы избежать этого, рекомендуется вставлять элементы в отображение в предсказуемом порядке, например, по возрастанию значения ключа. Фактически, для канонического представления CBOR требуются отображения с ключами в отсортированном порядке.
Дополнительную информацию о равенстве CBOR в Qt см. в QCborValue::compare().
См. также compare(), QCborValue::operator==(), QCborMap::operator==(), operator==(), и operator<().
bool QCborMap::operator<(const QCborMap &other) const
Сравнивает это отображение и other, сравнивая каждый элемент последовательно, и возвращает true, если это отображение должно быть отсортировано перед other, в противном случае возвращает false.
Обратите внимание, что CBOR-отображения не упорядочены, что означает, что два отображения, содержащие одни и те же пары, но в разном порядке, всё равно будут сравниваться по-разному. Чтобы избежать этого, рекомендуется вставлять элементы в отображение в предсказуемом порядке, например, по возрастанию значения ключа. Фактически, для канонического представления CBOR требуются отображения с ключами в отсортированном порядке.
Дополнительную информацию о порядке сортировки CBOR см. в QCborValue::compare().
См. также compare(), QCborValue::operator==(), QCborMap::operator==(), operator==(), и operator!=().
bool QCborMap::operator==(const QCborMap &other) const
Сравнивает это отображение и other, сравнивая каждый элемент последовательно, и возвращает true, если два отображения содержат одинаковые элементы в том же порядке, в противном случае возвращает false.
Обратите внимание, что CBOR-отображения не упорядочены, что означает, что два отображения, содержащие одни и те же пары, но в разном порядке, всё равно будут сравниваться по-разному. Чтобы избежать этого, рекомендуется вставлять элементы в отображение в предсказуемом порядке, например, по возрастанию значения ключа. Фактически, для канонического представления CBOR требуются отображения с ключами в отсортированном порядке.
Дополнительную информацию о равенстве CBOR в Qt см. в QCborValue::compare().
См. также compare(), QCborValue::operator==(), QCborMap::operator==(), operator!=(), и operator<().
const QCborValue QCborMap::operator[](qint64 key) const
Возвращает элемент QCborValue в этом отображении, соответствующий ключу key, если такой есть. CBOR рекомендует использовать целочисленные ключи, поскольку они занимают меньше места и проще для кодирования и декодирования.
Если отображение не содержит ключ key, эта функция возвращает QCborValue со значением неопределённого типа. По этой причине с помощью этой функции нельзя различить ситуацию, когда ключа не было, от ситуации, когда ключу было сопоставлено значение неопределённого типа.
Если отображение содержит более одного ключа, равного key, неопределённо, какой из них функция вернёт. QCborMap не допускает вставки дублирующих ключей, но создать такое отображение можно, декодировав CBOR-поток с ними. Такие ключи обычно не допускаются, и наличие дублирующих ключей обычно указывает на проблему у отправителя.
operator[](QLatin1String), operator[](const QString &), operator[](const QCborOperator[] &)
См. также value(qint64), find(qint64), constFind(qint64), remove(qint64), и contains(qint64).
const QCborValue QCborMap::operator[](QLatin1String key) const
Это перегруженная функция.
Возвращает элемент QCborValue в этом отображении, соответствующий ключу key, если такой есть.
Если отображение не содержит ключ key, эта функция возвращает QCborValue со значением неопределённого типа. По этой причине с помощью этой функции нельзя различить ситуацию, когда ключа не было, от ситуации, когда ключу было сопоставлено значение неопределённого типа.
Если отображение содержит более одного ключа, равного key, неопределённо, какой из них функция вернёт. QCborMap не допускает вставки дублирующих ключей, но создать такое отображение можно, декодировав CBOR-поток с ними. Такие ключи обычно не допускаются, и наличие дублирующих ключей обычно указывает на проблему у отправителя.
operator[](qint64), operator[](const QString &), operator[](const QCborOperator[] &)
См. также value(QLatin1String), find(QLatin1String), constFind(QLatin1String), remove(QLatin1String), и contains(QLatin1String).
const QCborValue QCborMap::operator[](const QString &key) const
Это перегруженная функция.
Возвращает элемент QCborValue в этом отображении, соответствующий ключу key, если такой есть.
Если отображение не содержит ключ key, эта функция возвращает QCborValue со значением неопределённого типа. По этой причине с помощью этой функции нельзя различить ситуацию, когда ключа не было, от ситуации, когда ключу было сопоставлено значение неопределённого типа.
Если отображение содержит более одного ключа, равного key, неопределённо, какой из них функция вернёт. QCborMap не допускает вставки дублирующих ключей, но создать такое отображение можно, декодировав CBOR-поток с ними. Такие ключи обычно не допускаются, и наличие дублирующих ключей обычно указывает на проблему у отправителя.
operator[](qint64), operator[](QLatin1String), operator[](const QCborOperator[] &)
См. также value(const QString &), find(const QString &), constFind(const QString &), remove(const QString &), и contains(const QString &).
const QCborValue QCborMap::operator[](const QCborValue &key) const
Возвращает элемент QCborValue в этом отображении, соответствующий ключу key, если такой есть.
Если отображение не содержит ключ key, эта функция возвращает QCborValue со значением неопределённого типа. По этой причине с помощью этой функции нельзя различить ситуацию, когда ключа не было, от ситуации, когда ключу было сопоставлено значение неопределённого типа.
Если отображение содержит более одного ключа, равного key, неопределённо, какой из них функция вернёт. QCborMap не допускает вставки дублирующих ключей, но создать такое отображение можно, декодировав CBOR-поток с ними. Такие ключи обычно не допускаются, и наличие дублирующих ключей обычно указывает на проблему у отправителя.
operator[](qint64), operator[](QLatin1String), operator[](const QCborOperator[] &)
См. также value(const QCborValue &), find(const QCborValue &), constFind(const QCborValue &), remove(const QCborValue &), и contains(const QCborValue &).
QCborValueRef QCborMap::operator[](qint64 key)
Возвращает QCborValueRef к значению в этом отображении, соответствующему ключу key. CBOR рекомендует использовать целочисленные ключи, поскольку они занимают меньше места и проще для кодирования и декодирования.
QCborValueRef имеет точно такой же API, что и QCborValue, с одним важным отличием: если вы присваиваете новые значения, это отображение будет обновлено этим новым значением.
Если в карте не было ключа, равного key, вставляется новый ключ, и эта функция возвращает ссылку на новое значение, которое будет QCborValue с неопределённым значением. По этой причине с помощью этой функции нельзя отличить ситуацию, когда ключа не было, от ситуации, когда ключу соответствовало неопределённое значение.
Если карта содержит более одного ключа, равного key, не определено, к какому ключу будет относиться возвращаемое значение. QCborMap не допускает вставки дублирующихся ключей, но создать такую карту можно, декодировав CBOR-поток с такими ключами. Обычно такие ключи недопустимы, и наличие дублирующихся ключей обычно указывает на проблему у отправителя.
См. также value(qint64), find(qint64), contains(qint64), remove(qint64), operator[](QLatin1String), operator[](const QString &), и operator[](const QCborValue &).
QCborValueRef QCborMap::operator[](QLatin1String key)
Это перегруженная функция.
Возвращает QCborValueRef значения в этой карте, соответствующего ключу key.
QCborValueRef имеет точно такой же API, что и QCborValue, с одним важным отличием: если вы присваиваете новые значения, эта карта будет обновлена этим новым значением.
Если в карте не было ключа, равного key, вставляется новый ключ, и эта функция возвращает ссылку на новое значение, которое будет QCborValue с неопределённым значением. По этой причине с помощью этой функции нельзя отличить ситуацию, когда ключа не было, от ситуации, когда ключу соответствовало неопределённое значение.
Если карта содержит более одного ключа, равного key, не определено, к какому ключу будет относиться возвращаемое значение. QCborMap не допускает вставки дублирующихся ключей, но создать такую карту можно, декодировав CBOR-поток с такими ключами. Обычно такие ключи недопустимы, и наличие дублирующихся ключей обычно указывает на проблему у отправителя.
См. также value(QLatin1String), find(QLatin1String), contains(QLatin1String), remove(QLatin1String), operator[](qint64), operator[](const QString &), и operator[](const QCborValue &).
QCborValueRef QCborMap::operator[](const QString &key)
Это перегруженная функция.
Возвращает QCborValueRef значения в этой карте, соответствующего ключу key.
QCborValueRef имеет точно такой же API, что и QCborValue, с одним важным отличием: если вы присваиваете новые значения, эта карта будет обновлена этим новым значением.
Если в карте не было ключа, равного key, вставляется новый ключ, и эта функция возвращает ссылку на новое значение, которое будет QCborValue с неопределённым значением. По этой причине с помощью этой функции нельзя отличить ситуацию, когда ключа не было, от ситуации, когда ключу соответствовало неопределённое значение.
Если карта содержит более одного ключа, равного key, не определено, к какому ключу будет относиться возвращаемое значение. QCborMap не допускает вставки дублирующихся ключей, но создать такую карту можно, декодировав CBOR-поток с такими ключами. Обычно такие ключи недопустимы, и наличие дублирующихся ключей обычно указывает на проблему у отправителя.
См. также value(const QString &), find(const QString &), contains(const QString &), remove(const QString &), operator[](qint64), operator[](QLatin1String), и operator[](const QCborValue &).
QCborValueRef QCborMap::operator[](const QCborValue &key)
Это перегруженная функция.
Возвращает QCborValueRef значения в этой карте, соответствующего ключу key.
QCborValueRef имеет точно такой же API, что и QCborValue, с одним важным отличием: если вы присваиваете новые значения, эта карта будет обновлена этим новым значением.
Если в карте не было ключа, равного key, вставляется новый ключ, и эта функция возвращает ссылку на новое значение, которое будет QCborValue с неопределённым значением. По этой причине с помощью этой функции нельзя отличить ситуацию, когда ключа не было, от ситуации, когда ключу соответствовало неопределённое значение.
Если карта содержит более одного ключа, равного key, не определено, к какому ключу будет относиться возвращаемое значение. QCborMap не допускает вставки дублирующихся ключей, но создать такую карту можно, декодировав CBOR-поток с такими ключами. Обычно такие ключи недопустимы, и наличие дублирующихся ключей обычно указывает на проблему у отправителя.
См. также value(const QCborValue &), find(const QCborValue &), contains(const QCborValue &), remove(const QCborValue &), operator[](qint64), operator[](QLatin1String), и operator[](const QString &).
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qcbormap.html