2012-07-12 15 views
6

Tengo un multimap<key_type,value_type> y me gustaría saber si una clave en particular aparece en el mapa a lo sumo una vez.¿Cómo puedo determinar si una clave en particular es única en una multimapa?

sé que puedo llamar multimap.equal_range(key) para encontrar un iterador al inicio y al final del rango que contiene key pero me gustaría saber si hay sólo un elemento entre el range.first y range.second.

¿Hay una manera mejor que incrementar el valor de range.first para ver si es igual a range.end? Dado que multimap::iterator es bidireccional, no es un gran problema deshacer el incremento, pero parece descuidado hacerlo.

Respuesta

7

¿Podría verificar si el std::multimap::count(key) == 1?

+0

Ah, no había visto la sobrecarga 'count'. Perfecto. Confirmaré que funciona mañana y marcaré como respondí. –

+0

@LarryOsterman Debe '" clave "' estar entre comillas? Me gustó sin comillas ya que 'clave' podría ser una variable. @Nawaz Gracias por el mejor enlace al sitio de referencia –

+0

No, no; esta fue mi mala, en mi caso la clave es una cadena y espaciada. Deshago. –

Cuestiones relacionadas