Spec-Zone.ru › Qt 5.12

Класс QCborMap

Класс QCborMap используется для хранения ассоциативного контейнера, представимого в CBOR. Подробнее...

Заголовок: #include <QCborMap>
qmake: QT += core
С момента: Qt 5.12
  • Список всех членов, включая унаследованные

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

Общие типы

класс ConstIterator
класс Iterator
тип const_iterator
тип iterator
тип key_type
тип mapped_type
тип size_type
тип value_type

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

QCborMap()
QCborMap(const QCborMap &other)
QCborMap(std::initializer_list<value_type> args)
~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
QVector<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
const QCborValue value(const char (&)[N] key = N) const
bool operator!=(const QCborMap &other) const
END_OF_DOCUMENT_MARKER
bool operator<(const QCborMap &other) const
QCborMap & operator=(const QCborMap &other)
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
const QCborValue operator[](const char (&)[N] key = N) 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)

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

Класс QCborMap используется для хранения ассоциативного контейнера, представимого в CBOR.

Этот класс может быть использован для хранения ассоциативного контейнера в CBOR, отображения ключа на значение. CBOR — это компактное двоичное представление объектов, являющееся расширением JSON. Он был создан рабочей группой IETF по ограниченным RESTful средам (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.

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

typedef QCborMap::const_iterator

Синоним для QCborMap::ConstIterator

typedef QCborMap::iterator

Синоним для QCborMap::Iterator.

typedef QCborMap::key_type

Тип ключа для этой карты. Поскольку ключи QCborMap могут быть любого типа CBOR, это QCborValue.

typedef QCborMap::mapped_type

Тип, отображаемый (значение), то есть QCborValue.

typedef QCborMap::size_type

Тип, используемый QCborMap для размеров.

typedef QCborMap::value_type

Значение, хранящееся в этом контейнере: пара QCborValues

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

QCborValue QCborMap::extract(QCborMap::iterator it)

QCborValue QCborMap::extract(QCborMap::const_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()

Создаёт пустой объект CBOR Map.

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

QCborMap::QCborMap(const QCborMap &other)

Создаёт объект QCborMap, являющийся копией other.

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()

Удаляет этот объект 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(QLatin1String), 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).

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

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).

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

QVector<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"
Целое число Десятичная строковая форма числа
Двойное число Десятичная строковая форма числа
Массив байтов Если не помечено иначе (см. выше), закодирован как 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 &).

const QCborValue QCborMap::value(const char (&)[N] key = N) const

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!=().

QCborMap &QCborMap::operator=(const QCborMap &other)

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

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 &).

const QCborValue QCborMap::operator[](const char (&)[N] key = N) const

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-5.12/qcbormap.html

Spec-Zone.ru

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