Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: nolasco281 en 24 Febrero 2014, 20:23 pm



Título: Que son plantillas multiset?
Publicado por: nolasco281 en 24 Febrero 2014, 20:23 pm
Hola como lo dice el titulo me gustaria saber que son plantillas multiset como trabajan y para que sirven talvez alquien me da una idea mas clara de la definicion.

muchas gracias.

PD: estaba leyendo un poco de biblioteca de plantillas estandar (SLT). y asi me llego la duda.


Título: Re: Que son plantillas multiset?
Publicado por: eferion en 25 Febrero 2014, 09:12 am
un multiset es una especie de set con la peculiaridad de que admite duplicados.

Código
  1. void main( )
  2. {
  3.  std::set< int > setItem;
  4.  std::multiset< int > multisetItem;
  5.  
  6.  setItem.insert( 10 );
  7.  setItem.insert( 20 );
  8.  setItem.insert( 10 );
  9.  
  10.  multisetItem.insert( 10 );
  11.  multisetItem.insert( 20 );
  12.  multisetItem.insert( 10 );
  13.  
  14.  for ( auto it = setItem.begin( ); it != setItem.end( ); ++it )
  15.    std::cout << *it << " ";
  16.  std::cout << std::endl;
  17.  
  18.  for ( auto it = multisetItem.begin( ); it != multisetItem.end( ); ++it )
  19.    std::cout << *it << " ";
  20.  std::cout << std::endl;

Salida del programa:

Código:
10 20
10 10 20


Título: Re: Que son plantillas multiset?
Publicado por: nolasco281 en 25 Febrero 2014, 15:49 pm
Gracias.

Esto quiere decir, que si admite datos duplicados tambien puede admitir datos no duplicados como el login de una persona? o el nombre especifico de esa persona.?

Oh hay otro metodo que se usa para los no duplicados?

Gracias saludos.



Título: Re: Que son plantillas multiset?
Publicado por: eferion en 25 Febrero 2014, 16:58 pm
No he entendido tu pregunta.

En general cada contenedor está preparado para un uso más o menos concreto:

* vector: uso general. Respeta el orden de inserción y permite el acceso aleatorio.

* set: cuando no se admiten duplicados, los resultados aparecen ordenados.

* multiset: resultados ordenados y con duplicados

* map: el índice es un tipo diferente de int o los índices no son consecutivos. No admite índices duplicados

* multimap: map con índices duplicados.

* stack y queue: pilas

* list: vector implementado a base de listas enlazadas. Los tiempos de inserción son constantes

* array: vector de tamaño fijo, no puede crecer.


Título: Re: Que son plantillas multiset?
Publicado por: nolasco281 en 25 Febrero 2014, 17:03 pm
Entiendo pense que podia utilizar multiset para datos no duplicados tambien.

Ya me quedo claro. Y me dejaste con algunas investigaciones tambien. Gracias saludos.