uso programacion mapas libreria funciona ejemplo diccionarios como c++ vector

programacion - setw c++ ejemplo



¿Comprobar si un std:: vector contiene un determinado objeto? (3)

Comprobando si v contiene el elemento x :

#include <algorithm> if(std::find(v.begin(), v.end(), x) != v.end()) { /* v contains x */ } else { /* v does not contain x */ }

Comprobando si v contiene elementos (no está vacío):

if(!v.empty()){ /* v is non-empty */ } else { /* v is empty */ }

Posible duplicado:
¿Cómo encontrar un artículo en un std :: vector?

¿Hay algo en <algorithm> que le permite verificar si un std :: container contiene algo? O, una forma de hacer uno, por ejemplo:

if(a.x == b.x && a.y == b.y) return true; return false;

¿Se puede hacer esto solo con std::map ya que usa claves?

Gracias


Si la búsqueda de un elemento es importante, recomendaría std::set lugar de std::vector . Usando esto:

std::find(vec.begin(), vec.end(), x) ejecuta en tiempo O (n), pero std::set tiene su propio miembro find() (es decir, myset.find(x) ) que se ejecuta en tiempo O (log n), que es mucho más eficiente con una gran cantidad de elementos

std::set también garantiza que todos los elementos agregados son únicos, lo que le evita tener que hacer algo como if not contained then push_back()...