En esta página

QMap Class

template <typename Key, typename T> class QMap

La clase QMap es una clase de plantilla que proporciona una matriz asociativa. Más...

Cabecera: #include <QMap>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Esta clase es igual-comparable.

Nota: Todas las funciones de esta clase son reentrantes.

Tipos Públicos

Funciones Públicas

QMap()
QMap(const std::map<Key, T> &other)
QMap(std::initializer_list<std::pair<Key, T>> list)
QMap(std::map<Key, T> &&other)
QMap(const QMap<Key, T> &other)
QMap(QMap<Key, T> &&other)
~QMap()
(since 6.4) auto asKeyValueRange() &&
(since 6.4) auto asKeyValueRange() &
(since 6.4) auto asKeyValueRange() const &&
(since 6.4) auto asKeyValueRange() const &
QMap<Key, T>::iterator begin()
QMap<Key, T>::const_iterator begin() const
QMap<Key, T>::const_iterator cbegin() const
QMap<Key, T>::const_iterator cend() const
void clear()
QMap<Key, T>::const_iterator constBegin() const
QMap<Key, T>::const_iterator constEnd() const
QMap<Key, T>::const_iterator constFind(const Key &key) const
QMap<Key, T>::const_key_value_iterator constKeyValueBegin() const
QMap<Key, T>::const_key_value_iterator constKeyValueEnd() const
bool contains(const Key &key) const
QMap<Key, T>::size_type count(const Key &key) const
QMap<Key, T>::size_type count() const
bool empty() const
QMap<Key, T>::iterator end()
QMap<Key, T>::const_iterator end() const
std::pair<QMap<Key, T>::iterator, QMap<Key, T>::iterator> equal_range(const Key &key)
std::pair<QMap<Key, T>::const_iterator, QMap<Key, T>::const_iterator> equal_range(const Key &key) const
QMap<Key, T>::iterator erase(QMap<Key, T>::const_iterator pos)
(since 6.0) QMap<Key, T>::iterator erase(QMap<Key, T>::const_iterator first, QMap<Key, T>::const_iterator last)
QMap<Key, T>::iterator find(const Key &key)
QMap<Key, T>::const_iterator find(const Key &key) const
T &first()
const T &first() const
const Key &firstKey() const
void insert(QMap<Key, T> &&map)
void insert(const QMap<Key, T> &map)
QMap<Key, T>::iterator insert(const Key &key, const T &value)
QMap<Key, T>::iterator insert(QMap<Key, T>::const_iterator pos, const Key &key, const T &value)
bool isEmpty() const
Key key(const T &value, const Key &defaultKey = Key()) const
QMap<Key, T>::key_iterator keyBegin() const
QMap<Key, T>::key_iterator keyEnd() const
QMap<Key, T>::key_value_iterator keyValueBegin()
QMap<Key, T>::const_key_value_iterator keyValueBegin() const
QMap<Key, T>::key_value_iterator keyValueEnd()
QMap<Key, T>::const_key_value_iterator keyValueEnd() const
QList<Key> keys() const
QList<Key> keys(const T &value) const
T &last()
const T &last() const
const Key &lastKey() const
QMap<Key, T>::iterator lowerBound(const Key &key)
QMap<Key, T>::const_iterator lowerBound(const Key &key) const
QMap<Key, T>::size_type remove(const Key &key)
(since 6.1) QMap<Key, T>::size_type removeIf(Predicate pred)
QMap<Key, T>::size_type size() const
void swap(QMap<Key, T> &other)
T take(const Key &key)
std::map<Key, T> toStdMap() const &
(since 6.0) std::map<Key, T> toStdMap() &&
QMap<Key, T>::iterator upperBound(const Key &key)
QMap<Key, T>::const_iterator upperBound(const Key &key) const
T value(const Key &key, const T &defaultValue = T()) const
QList<T> values() const
QMap<Key, T> &operator=(QMap<Key, T> &&other)
QMap<Key, T> &operator=(const QMap<Key, T> &other)
T &operator[](const Key &key)
T operator[](const Key &key) const
(since 6.1) qsizetype erase_if(QMap<Key, T> &map, Predicate pred)
(since 6.8) size_t qHash(const QMap<Key, T> &key, size_t seed = 0)
bool operator!=(const QMap<Key, T> &lhs, const QMap<Key, T> &rhs)
QDataStream &operator<<(QDataStream &out, const QMap<Key, T> &map)
bool operator==(const QMap<Key, T> &lhs, const QMap<Key, T> &rhs)
QDataStream &operator>>(QDataStream &in, QMap<Key, T> &map)

Descripción Detallada

QMap<Key, T> es una de las clases contenedoras genéricas de Qt. Almacena pares (clave, valor) y proporciona una búsqueda rápida por clave.

QMap y QHash proporcionan funcionalidades muy similares. Las diferencias son:

  • QHash QMap proporciona búsquedas más rápidas que QMap. (Véase Complejidad algorítmica para más detalles).
  • Cuando se itera sobre QHash, los elementos se ordenan arbitrariamente. Con QMap, los elementos siempre se ordenan por clave.
  • El tipo de clave de un QHash debe proporcionar operator==() y una función global qHash(Key). El tipo clave de un QMap debe proporcionar operator<() especificando un orden total. Desde Qt 5.8.1 también es seguro usar un tipo puntero como clave, incluso si el operador<() subyacente no proporciona un orden total.

He aquí un ejemplo de QMap con QString claves y int valores:

QMap<QString, int> map;

Para insertar un par (clave, valor) en el mapa, puede utilizar operator[]():

map["one"] = 1;
map["three"] = 3;
map["seven"] = 7;

Esto inserta los siguientes tres pares (clave, valor) en el QMap: ("uno", 1), ("tres", 3), y ("siete", 7). Otra forma de insertar elementos en el mapa es utilizar insert():

map.insert("twelve", 12);

Para buscar un valor, utilice operator[]() o value():

int num1 = map["thirteen"];
int num2 = map.value("thirteen");

Si no hay ningún elemento con la clave especificada en el mapa, estas funciones devuelven un valor construido por defecto.

Si desea comprobar si el mapa contiene una clave determinada, utilice contains():

int timeout = 30;
if (map.contains("TIMEOUT"))
    timeout = map.value("TIMEOUT");

También existe una sobrecarga de value() que utiliza su segundo argumento como valor por defecto si no hay ningún elemento con la clave especificada:

int timeout = map.value("TIMEOUT", 30);

En general, se recomienda utilizar contains() y value() en lugar de operator[]() para buscar una clave en un mapa. La razón es que operator[]() inserta silenciosamente un elemento en el mapa si no existe ningún elemento con la misma clave (a menos que el mapa sea const). Por ejemplo, el siguiente fragmento de código creará 1000 elementos en memoria:

// WRONG
QMap<int, QWidget *> map;
//...
for (int i = 0; i < 1000; ++i) {
    if (map[i] == okButton)
        cout << "Found button at index " << i << endl;
}

Para evitar este problema, sustituya map[i] por map.value(i) en el código anterior.

Si quieres navegar a través de todos los pares (clave, valor) almacenados en un QMap, puedes utilizar un iterador. QMap proporciona tanto iteradores de estilo Java (QMapIterator y QMutableMapIterator) como iteradores de estilo STL (QMap::const_iterator y QMap::iterator). He aquí cómo iterar sobre un QMap<QString, int> usando un iterador estilo Java:

QMapIterator<QString, int> i(map);
while (i.hasNext()) {
    i.next();
    cout << qPrintable(i.key()) << ": " << i.value() << endl;
}

Aquí está el mismo código, pero usando un iterador estilo STL esta vez:

for (auto i = map.cbegin(), end = map.cend(); i != end; ++i)
    cout << qPrintable(i.key()) << ": " << i.value() << endl;

Los elementos se recorren en orden de clave ascendente.

Un QMap sólo permite un valor por clave. Si llamas a insert() con una clave que ya existe en el QMap, el valor anterior será borrado. Por ejemplo:

map.insert("plenty", 100);
map.insert("plenty", 2000);
// map.value("plenty") == 2000

Sin embargo, puede almacenar múltiples valores por clave utilizando QMultiMap.

Si sólo necesitas extraer los valores de un mapa (no las claves), también puedes utilizar range-based for:

QMap<QString, int> map;
//...
for (int value : std::as_const(map))
    cout << value << endl;

Los elementos pueden eliminarse del mapa de varias formas. Una forma es llamar a remove(); esto eliminará cualquier elemento con la clave dada. Otra forma es utilizar QMutableMapIterator::remove(). Además, puedes borrar todo el mapa utilizando clear().

Los tipos de datos clave y valor de QMap deben ser tipos de datos asignables. Esto cubre la mayoría de los tipos de datos que es probable que encuentres, pero el compilador no te permitirá, por ejemplo, almacenar un QWidget como valor; en su lugar, almacena un QWidget *. Además, el tipo clave de QMap debe proporcionar operator<(). QMap lo utiliza para mantener sus elementos ordenados, y asume que dos claves x y y son equivalentes si ni x < y ni y < x son verdaderas.

Ejemplo:

#ifndef EMPLOYEE_H
#define EMPLOYEE_H

class Employee
{
public:
    Employee() {}
    Employee(const QString &name, QDate dateOfBirth);
    QString name() const { return myName; }
    QDate dateOfBirth() const { return myDateOfBirth; }
    //...

private:
    QString myName;
    QDate myDateOfBirth;
};

inline bool operator<(const Employee &e1, const Employee &e2)
{
    if (e1.name() != e2.name())
        return e1.name() < e2.name();
    return e1.dateOfBirth() < e2.dateOfBirth();
}

#endif // EMPLOYEE_H

En el ejemplo, empezamos comparando los nombres de los empleados. Si son iguales, comparamos sus fechas de nacimiento para deshacer el empate.

Véase también QMapIterator, QMutableMapIterator, QHash, y QSet.

Documentación de tipos de miembros

QMap::ConstIterator

Qt-style sinónimo de QMap::const_iterator.

QMap::Iterator

Qt-style sinónimo de QMap::iterator.

QMap::const_key_value_iterator

El tippedef QMap::const_key_value_iterator proporciona un iterador estilo STL para QMap.

QMap::const_key_value_iterator es esencialmente lo mismo que QMap::const_iterator con la diferencia de que operator*() devuelve un par clave/valor en lugar de un valor.

Véase también QKeyValueIterator.

[alias] QMap::difference_type

Typedef para ptrdiff_t. Proporcionado para la compatibilidad STL.

[alias] QMap::key_type

Typedef para Key. Se proporciona por compatibilidad con STL.

QMap::key_value_iterator

El tippedef QMap::key_value_iterator proporciona un iterador al estilo STL para QMap.

QMap::key_value_iterator es esencialmente lo mismo que QMap::iterator con la diferencia de que operator*() devuelve un par clave/valor en lugar de un valor.

Véase también QKeyValueIterator.

[alias] QMap::mapped_type

Typedef para T. Proporcionado por compatibilidad con STL.

[alias] QMap::size_type

Typedef para int. Se proporciona por compatibilidad con la STL.

Documentación de funciones miembro

QMap::QMap()

Construye un mapa vacío.

Véase también clear().

[explicit] QMap::QMap(const std::map<Key, T> &other)

Construye una copia de other.

Véase también toStdMap().

QMap::QMap(std::initializer_list<std::pair<Key, T>> list)

Construye un mapa con una copia de cada uno de los elementos de la lista inicializadora list.

[explicit] QMap::QMap(std::map<Key, T> &&other)

Construye un mapa desplazándose desde other.

Véase también toStdMap().

[default] QMap::QMap(const QMap<Key, T> &other)

Construye una copia de other.

Esta operación ocurre en tiempo constante, porque QMap es implícitamente compartido. Esto hace que devolver un QMap desde una función sea muy rápido. Si una instancia compartida es modificada, será copiada (copy-on-write), y esto toma tiempo lineal.

Véase también operator=.

[default] QMap::QMap(QMap<Key, T> &&other)

Move-construye una instancia de QMap.

[default] QMap::~QMap()

Destruye el mapa. Las referencias a los valores del mapa y todos los iteradores sobre este mapa dejan de ser válidos.

[since 6.4] auto QMap::asKeyValueRange() &

[since 6.4] auto QMap::asKeyValueRange() const &

[since 6.4] auto QMap::asKeyValueRange() &&

[since 6.4] auto QMap::asKeyValueRange() const &&

Devuelve un objeto de rango que permite iterar sobre este mapa como pares clave/valor. Por ejemplo, este objeto range puede utilizarse en un bucle for basado en range, en combinación con una declaración de vinculación estructurada:

QMap<QString, int> map;
map.insert("January", 1);
map.insert("February", 2);
// ...
map.insert("December", 12);

for (auto [key, value] : map.asKeyValueRange()) {
    cout << qPrintable(key) << ": " << value << endl;
    --value; // convert to JS month indexing
}

Tenga en cuenta que tanto la clave como el valor obtenidos de esta forma son referencias a los del mapa. En concreto, al mutar el valor se modificará el propio mapa.

Estas funciones se introdujeron en Qt 6.4.

Véase también QKeyValueIterator.

QMap<Key, T>::iterator QMap::begin()

Devuelve un iterador de estilo STL que apunta al primer elemento del mapa.

Véase también constBegin() y end().

QMap<Key, T>::const_iterator QMap::begin() const

Se trata de una función sobrecargada.

QMap<Key, T>::const_iterator QMap::cbegin() const

Devuelve un iterador const de estilo STL que apunta al primer elemento del mapa.

Véase también begin() y cend().

QMap<Key, T>::const_iterator QMap::cend() const

Devuelve un iterador const de estilo STL que apunta al elemento imaginario después del último elemento del mapa.

Véase también cbegin() y end().

void QMap::clear()

Elimina todos los elementos del mapa.

Véase también remove().

QMap<Key, T>::const_iterator QMap::constBegin() const

Devuelve un iterador const de estilo STL que apunta al primer elemento del mapa.

Véase también begin() y constEnd().

QMap<Key, T>::const_iterator QMap::constEnd() const

Devuelve un iterador const de estilo STL que apunta al elemento imaginario después del último elemento del mapa.

Véase también constBegin() y end().

QMap<Key, T>::const_iterator QMap::constFind(const Key &key) const

Devuelve un iterador const que apunta al elemento con clave key en el mapa.

Si el mapa no contiene ningún elemento con la clave key, la función devuelve constEnd().

Véase también find().

QMap<Key, T>::const_key_value_iterator QMap::constKeyValueBegin() const

Devuelve un iterador const de estilo STL que apunta a la primera entrada del mapa.

Véase también keyValueBegin().

QMap<Key, T>::const_key_value_iterator QMap::constKeyValueEnd() const

Devuelve un iterador const de estilo STL que apunta a la entrada imaginaria después de la última entrada del mapa.

Véase también constKeyValueBegin().

bool QMap::contains(const Key &key) const

Devuelve true si el mapa contiene un elemento con la clave key; en caso contrario devuelve false.

Véase también count().

QMap<Key, T>::size_type QMap::count(const Key &key) const

Devuelve el número de elementos asociados a la clave key.

Véase también contains().

QMap<Key, T>::size_type QMap::count() const

Igual que size().

Se trata de una función sobrecargada.

bool QMap::empty() const

Esta función se proporciona por compatibilidad con STL. Es equivalente a isEmpty(), devolviendo true si el mapa está vacío; en caso contrario devuelve false.

QMap<Key, T>::iterator QMap::end()

Devuelve un iterador de estilo STL que apunta al elemento imaginario situado después del último elemento del mapa.

Véase también begin() y constEnd().

QMap<Key, T>::const_iterator QMap::end() const

Se trata de una función sobrecargada.

std::pair<QMap<Key, T>::iterator, QMap<Key, T>::iterator> QMap::equal_range(const Key &key)

Devuelve un par de iteradores que delimitan el rango de valores [first, second), que se almacenan en key.

std::pair<QMap<Key, T>::const_iterator, QMap<Key, T>::const_iterator> QMap::equal_range(const Key &key) const

Se trata de una función sobrecargada.

QMap<Key, T>::iterator QMap::erase(QMap<Key, T>::const_iterator pos)

Elimina del mapa el par (clave, valor) apuntado por el iterador pos y devuelve un iterador al siguiente elemento del mapa.

Nota: El iterador pos debe ser válido y desreferenciable.

Véase también remove().

[since 6.0] QMap<Key, T>::iterator QMap::erase(QMap<Key, T>::const_iterator first, QMap<Key, T>::const_iterator last)

Elimina del mapa los pares (clave, valor) apuntados por el rango de iteradores [first, last). Devuelve un iterador al elemento del mapa siguiente al último elemento eliminado.

Nota: El rango [first, last) debe ser un rango válido en *this.

Esta función se introdujo en Qt 6.0.

Véase también remove().

QMap<Key, T>::iterator QMap::find(const Key &key)

Devuelve un iterador que apunta al elemento con clave key en el mapa.

Si el mapa no contiene ningún elemento con la clave key, la función devuelve end().

Véase también constFind(), value(), values(), lowerBound() y upperBound().

QMap<Key, T>::const_iterator QMap::find(const Key &key) const

Se trata de una función sobrecargada.

T &QMap::first()

Devuelve una referencia al primer valor del mapa, es decir, el valor asignado a la clave más pequeña. Esta función asume que el mapa no está vacío.

Cuando no se comparte (o se llama a la versión const), se ejecuta en tiempo constante.

Véase también last(), firstKey(), y isEmpty().

const T &QMap::first() const

Se trata de una función sobrecargada.

const Key &QMap::firstKey() const

Devuelve una referencia a la clave más pequeña del mapa. Esta función asume que el mapa no está vacío.

Se ejecuta en tiempo constante.

Véase también lastKey(), first(), keyBegin() y isEmpty().

void QMap::insert(QMap<Key, T> &&map)

Mueve todos los elementos de map a este mapa.

Si una clave es común a ambos mapas, su valor se sustituirá por el valor almacenado en map.

Si map es compartido, los elementos se copiarán en su lugar.

void QMap::insert(const QMap<Key, T> &map)

Inserta todos los elementos de map en este mapa.

Si una clave es común a ambos mapas, su valor se sustituirá por el valor almacenado en map.

QMap<Key, T>::iterator QMap::insert(const Key &key, const T &value)

Inserta un nuevo elemento con la clave key y el valor value.

Si ya existe un elemento con la clave key, el valor de ese elemento se sustituye por value.

Devuelve un iterador que apunta al elemento nuevo/actualizado.

QMap<Key, T>::iterator QMap::insert(QMap<Key, T>::const_iterator pos, const Key &key, const T &value)

Inserta un nuevo elemento con la clave key y el valor value y con la sugerencia pos sugiriendo dónde realizar la inserción.

Si se utiliza constBegin() como pista indica que key es menor que cualquier clave del mapa mientras que constEnd() sugiere que key es (estrictamente) mayor que cualquier clave del mapa. En caso contrario, la pista debe cumplir la condición (pos - 1).key() < key <= pos.key(). Si la pista pos es incorrecta, se ignora y se realiza una inserción normal.

Si ya existe un elemento con la clave key, el valor de ese elemento se sustituye por value.

Si la pista es correcta y el mapa no está compartido, la inserción se ejecuta en tiempo constante amortizado.

Cuando se crea un mapa a partir de datos ordenados, insertar primero la clave mayor con constBegin() es más rápido que insertar en orden con constEnd(), ya que constEnd() - 1 (que se necesita para comprobar si la pista es válida) necesita tiempo logarítmico.

Nota: Ten cuidado con la pista. Proporcionar un iterador de una instancia compartida más antigua podría bloquearse, pero también existe el riesgo de que corrompa silenciosamente tanto el mapa como el mapa pos.

Devuelve un iterador que apunta al elemento nuevo/actualizado.

Esta es una función sobrecargada.

bool QMap::isEmpty() const

Devuelve true si el mapa no contiene elementos; en caso contrario devuelve false.

Véase también size().

Key QMap::key(const T &value, const Key &defaultKey = Key()) const

Devuelve la primera clave con valor value, o defaultKey si el mapa no contiene ningún elemento con valor value. Si no se proporciona defaultKey, la función devuelve una clave construida por defecto.

Esta función puede ser lenta(tiempo lineal), porque la estructura de datos interna de QMap está optimizada para una búsqueda rápida por clave, no por valor.

Véase también value() y keys().

QMap<Key, T>::key_iterator QMap::keyBegin() const

Devuelve un iterador const de estilo STL que apunta a la primera clave del mapa.

Véase también keyEnd() y firstKey().

QMap<Key, T>::key_iterator QMap::keyEnd() const

Devuelve un iterador const de estilo STL que apunta al elemento imaginario después de la última clave del mapa.

Véase también keyBegin() y lastKey().

QMap<Key, T>::key_value_iterator QMap::keyValueBegin()

Devuelve un iterador de estilo STL que apunta a la primera entrada del mapa.

Véase también keyValueEnd().

QMap<Key, T>::const_key_value_iterator QMap::keyValueBegin() const

Devuelve un iterador const de estilo STL que apunta a la primera entrada del mapa.

Véase también keyValueEnd().

QMap<Key, T>::key_value_iterator QMap::keyValueEnd()

Devuelve un iterador estilo STL que apunta a la entrada imaginaria después de la última entrada del mapa.

Véase también keyValueBegin().

QMap<Key, T>::const_key_value_iterator QMap::keyValueEnd() const

Devuelve un iterador const de estilo STL que apunta a la entrada imaginaria después de la última entrada del mapa.

Véase también keyValueBegin().

QList<Key> QMap::keys() const

Devuelve una lista que contiene todas las claves del mapa en orden ascendente.

Se garantiza que el orden sea el mismo que el utilizado por values().

Esta función crea una nueva lista, en tiempo lineal. El uso de tiempo y memoria que conlleva puede evitarse iterando de keyBegin() a keyEnd().

Véase también values() y key().

QList<Key> QMap::keys(const T &value) const

Devuelve una lista que contiene todas las claves asociadas al valor value en orden ascendente.

Esta función puede ser lenta(tiempo lineal), porque la estructura de datos interna de QMap está optimizada para una búsqueda rápida por clave, no por valor.

Se trata de una función sobrecargada.

T &QMap::last()

Devuelve una referencia al último valor del mapa, es decir, el valor asignado a la clave mayor. Esta función asume que el mapa no está vacío.

Cuando no se comparte (o se llama a la versión const), se ejecuta en tiempo constante.

Véase también first(), lastKey(), y isEmpty().

const T &QMap::last() const

Se trata de una función sobrecargada.

const Key &QMap::lastKey() const

Devuelve una referencia a la clave mayor del mapa. Esta función asume que el mapa no está vacío.

Se ejecuta en tiempo constante.

Véase también firstKey(), last(), keyEnd() y isEmpty().

QMap<Key, T>::iterator QMap::lowerBound(const Key &key)

Devuelve un iterador que apunta al primer elemento con clave key en el mapa. Si el mapa no contiene ningún elemento con la clave key, la función devuelve un iterador al elemento más cercano con una clave mayor.

Véase también upperBound() y find().

QMap<Key, T>::const_iterator QMap::lowerBound(const Key &key) const

Se trata de una función sobrecargada.

QMap<Key, T>::size_type QMap::remove(const Key &key)

Elimina del mapa todos los elementos que tienen la clave key. Devuelve el número de elementos eliminados, que será 1 si la clave existe en el mapa, y 0 en caso contrario.

Véase también clear() y take().

[since 6.1] template <typename Predicate> QMap<Key, T>::size_type QMap::removeIf(Predicate pred)

Elimina del mapa todos los elementos para los que el predicado pred devuelve verdadero.

La función admite predicados que toman un argumento de tipo QMap<Key, T>::iterator, o un argumento de tipo std::pair<const Key &, T &>.

Devuelve el número de elementos eliminados, si los hay.

Esta función se introdujo en Qt 6.1.

Véase también clear() y take().

QMap<Key, T>::size_type QMap::size() const

Devuelve el número de pares (clave, valor) en el mapa.

Véase también isEmpty() y count().

[noexcept] void QMap::swap(QMap<Key, T> &other)

Intercambia este mapa con other. Esta operación es muy rápida y nunca falla.

T QMap::take(const Key &key)

Elimina del mapa el elemento con la clave key y devuelve el valor asociado a él.

Si el elemento no existe en el mapa, la función simplemente devuelve un valor construido por defecto.

Si no se utiliza el valor devuelto, remove() es más eficiente.

Véase también remove().

std::map<Key, T> QMap::toStdMap() const &

Devuelve un mapa STL equivalente a este QMap.

[since 6.0] std::map<Key, T> QMap::toStdMap() &&

Nota: La llamada a esta función dejará este QMap en el estado parcialmente formado, en el que las únicas operaciones válidas son la destrucción o la asignación de un nuevo valor.

Se trata de una función sobrecargada.

Esta función se introdujo en Qt 6.0.

QMap<Key, T>::iterator QMap::upperBound(const Key &key)

Devuelve un iterador que apunta al elemento que sigue inmediatamente al último elemento con clave key en el mapa. Si el mapa no contiene ningún elemento con la clave key, la función devuelve un iterador al elemento más cercano con una clave mayor.

Ejemplo:

QMap<int, QString> map;
map.insert(1, "one");
map.insert(5, "five");
map.insert(10, "ten");

map.upperBound(0);      // returns iterator to (1, "one")
map.upperBound(1);      // returns iterator to (5, "five")
map.upperBound(2);      // returns iterator to (5, "five")
map.upperBound(10);     // returns end()
map.upperBound(999);    // returns end()

Véase también lowerBound() y find().

QMap<Key, T>::const_iterator QMap::upperBound(const Key &key) const

Se trata de una función sobrecargada.

T QMap::value(const Key &key, const T &defaultValue = T()) const

Devuelve el valor asociado a la clave key.

Si el mapa no contiene ningún elemento con la clave key, la función devuelve defaultValue. Si no se especifica defaultValue, la función devuelve un valor construido por defecto.

Véase también key(), values(), contains() y operator[]().

QList<T> QMap::values() const

Devuelve una lista que contiene todos los valores del mapa, en orden ascendente de sus claves.

Esta función crea una nueva lista, en tiempo lineal. El uso de tiempo y memoria que conlleva puede evitarse iterando desde keyValueBegin() hasta keyValueEnd().

Véase también keys() y value().

[default] QMap<Key, T> &QMap::operator=(QMap<Key, T> &&other)

Mover-asigna other a esta instancia QMap.

[default] QMap<Key, T> &QMap::operator=(const QMap<Key, T> &other)

Asigna other a este mapa y devuelve una referencia al mismo.

T &QMap::operator[](const Key &key)

Devuelve el valor asociado a la clave key como referencia modificable.

Si el mapa no contiene ningún elemento con la clave key, la función inserta un valor construido por defecto en el mapa con la clave key, y devuelve una referencia al mismo.

Véase también insert() y value().

T QMap::operator[](const Key &key) const

Igual que value().

Se trata de una función sobrecargada.

No miembros relacionados

[since 6.1] template < typename Key, typename T, typename Predicate > qsizetype erase_if(QMap<Key, T> &map, Predicate pred)

Elimina todos los elementos para los que el predicado pred devuelve verdadero del mapa map.

La función admite predicados que toman un argumento de tipo QMap<Key, T>::iterator, o un argumento de tipo std::pair<const Key &, T &>.

Devuelve el número de elementos eliminados, si los hay.

Esta función se introdujo en Qt 6.1.

[since 6.8] size_t qHash(const QMap<Key, T> &key, size_t seed = 0)

Devuelve el valor hash para key, utilizando seed para sembrar el cálculo.

Los tipos Key y T deben ser soportados por qHash().

Esta función se introdujo en Qt 6.8.

bool operator!=(const QMap<Key, T> &lhs, const QMap<Key, T> &rhs)

Devuelve true si lhs no es igual a rhs; en caso contrario devuelve false.

Dos mapas se consideran iguales si contienen los mismos pares (clave, valor).

Esta función requiere que los tipos clave y valor implementen operator==().

Véase también operator==().

template <typename Key, typename T> QDataStream &operator<<(QDataStream &out, const QMap<Key, T> &map)

Escribe el mapa map en el flujo out.

Esta función requiere que los tipos clave y valor implementen operator<<().

Véase también Formato de los operadores QDataStream.

bool operator==(const QMap<Key, T> &lhs, const QMap<Key, T> &rhs)

Devuelve true si lhs es igual a rhs; en caso contrario devuelve false.

Dos mapas se consideran iguales si contienen los mismos pares (clave, valor).

Esta función requiere que los tipos clave y valor implementen operator==().

Véase también operator!=().

template <typename Key, typename T> QDataStream &operator>>(QDataStream &in, QMap<Key, T> &map)

Lee un mapa del flujo in en map.

Esta función requiere que los tipos clave y valor implementen operator>>().

Véase también Formato de los operadores QDataStream.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.