multiset (STL/CLR)
La clase de plantilla describe un objeto que controla una secuencia de la variar-longitud de elementos con acceso bidireccional.Utiliza el contenedor multiset para administrar una secuencia de elementos como (casi) equilibró el árbol orden de nodos, cada un elemento que almacena.
En la descripción siguiente, GValue es igual que GKey, que a su vez es igual que Key a menos que este último es un tipo de referencia, en este caso es Key^.
template<typename Key>
ref class multiset
: public
System::ICloneable,
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<GValue>,
System::Collections::Generic::ICollection<GValue>,
System::Collections::Generic::IList<GValue>,
Microsoft::VisualC::StlClr::ITree<Gkey, GValue>
{ ..... };
Parámetros
- Clave
Tipo del componente clave de un elemento en la secuencia controlada.
Members
Definición de tipo |
Descripción |
---|---|
El tipo de un iterador constante para la secuencia controlada. |
|
El tipo de una referencia constante a un elemento. |
|
El tipo de un iterador inverso constante para la secuencia controlada. |
|
El tipo de distancia a (firmada posiblemente) entre dos elementos. |
|
El tipo de interfaz genérica para el contenedor. |
|
El tipo de un iterador para la interfaz genérica para el contenedor. |
|
El tipo de un iterador inverso para la interfaz genérica para el contenedor. |
|
El tipo de un elemento de la interfaz genérica para el contenedor. |
|
El tipo de un iterador para la secuencia controlada. |
|
El delegado de ordenación para dos claves. |
|
El tipo de una clave de ordenación. |
|
El tipo de una referencia a un elemento. |
|
El tipo de un iterador inverso para la secuencia controlada. |
|
El tipo de distancia (no negativa) de a entre dos elementos. |
|
El delegado de ordenación por dos valores de elemento. |
|
El tipo de un elemento. |
Función miembro |
Descripción |
---|---|
Designa el principio de la secuencia controlada. |
|
Quita todos los elementos. |
|
Cuenta los elementos que coinciden con una clave especificada. |
|
Comprueba si no hay elementos presentes. |
|
Designa el final de la secuencia controlada. |
|
Encuentra el intervalo que coincide con una clave especificada. |
|
Quita los elementos en las posiciones especificadas. |
|
Busca un elemento que coincida con una clave especificada. |
|
Agrega elementos. |
|
Copia el delegado de ordenación para dos claves. |
|
Encuentra el inicio del intervalo que coincide con una clave especificada. |
|
Construye un objeto value. |
|
Construye un objeto contenedor. |
|
Designa el principio de la secuencia controlada inversa. |
|
Designa el final de la secuencia controlada inversa. |
|
Cuenta el número de elementos. |
|
Intercambia el contenido de dos contenedores. |
|
Copia la secuencia controlada a una nueva matriz. |
|
Encuentra el final del intervalo que coincide con una clave especificada. |
|
Copia el delegado de ordenación por dos valores de elemento. |
Operador |
Descripción |
---|---|
Reemplaza la secuencia controlada. |
|
Determina si un objeto de multiset no es igual a otro objeto de multiset . |
|
Determina si un objeto de multiset es menor que otro objeto de multiset . |
|
Determina si un objeto de multiset menor o igual que otro objeto de multiset . |
|
Determina si un objeto de multiset es igual a otro objeto de multiset . |
|
Determina si un objeto de multiset es mayor que otro objeto de multiset . |
|
Determina si un objeto de multiset mayor o igual que otro objeto de multiset . |
Interfaces
Interfaz |
Descripción |
---|---|
Dupliquen un objeto. |
|
Secuencia a través de los elementos. |
|
Mantenga el grupo de elementos. |
|
Secuencia mediante elementos escritos. |
|
Mantenga el grupo de elementos escritos. |
|
ITree<Clave, value> |
Mantenga el contenedor genérico. |
Comentarios
El objeto asigna y libera el almacenamiento de la secuencia que controla como nodos individuales.Insertar elementos en (casi) nunca equilibró el árbol que mantiene orden modificando los vínculos entre los nodos, copiando el contenido de un nodo a otro.Eso significa que puede insertar y quitar elementos libremente sin elementos restantes que modifican.
El objeto pide la secuencia que controla llamando a un objeto almacenado de delegado de multiset::key_compare (STL/CLR)escrito.Puede especificar el objeto almacenado de delegado cuando se construye el conjunto múltiple; si no especifica ningún objeto delegado, el valor predeterminado es la comparación operator<(key_type, key_type).Tiene acceso a este objeto almacenado llamando a la función multiset::key_comp (STL/CLR)()miembro.
Este tipo de objeto delegado debe imponer orden débil estricto sobre las teclas de multiset::key_type (STL/CLR)escrito.Es decir, para cualquier dos claves X y Y:
key_comp()(X, Y) devuelve el mismo resultado booleano en cada llamada.
Si key_comp()(X, Y) es true, el key_comp()(Y, X) debe ser false.
Si key_comp()(X, Y) es true, el X se secuenciado antes de Y.
Si !key_comp()(X, Y) && !key_comp()(Y, X) es true, el X y Y se dice que tienen orden equivalente.
Para cualquier elemento X que preceda Y en la secuencia controlada, key_comp()(Y, X) es false.(Para el objeto predeterminado de delegado, las teclas nunca disminuyen en valor.) A diferencia de la clase de plantilla set (STL/CLR), un objeto de clase de plantilla multiset no requiere que las claves para todos los elementos son únicas.(Dos o más claves pueden tener orden equivalente).
Cada elemento actúa como un ey y valor.La secuencia se representan de forma que permita búsqueda, la inserción, y la eliminación de un elemento arbitrario con varias operaciones proporcionales al logaritmo del número de elementos de la secuencia (tiempo logarítmico).Por otra parte, inserta un elemento no invalida ningún iterador, y quitar un elemento reemplaza solo los iteradores que señalan en el elemento quitado.
Un conjunto múltiple admite iteradores bidireccionales, que significa que se puede pasar a los elementos adyacentes dado un iterador que señale un elemento de la secuencia controlada.Un nodo principal especial corresponde al iterador devuelto por multiset::end (STL/CLR)().Puede reducir este iterador para lograr el último elemento de la secuencia controlada, si existe.Puede incrementar un iterador de conjunto múltiple para lograr el nodo principal, y a continuación comparará el igual a end().Pero no puede desreferenciar el iterador devuelto por end().
Observe que no puede hacer referencia a un elemento de conjunto múltiple determinado directamente su posición numérica -- esto requiere un iterador de acceso aleatorio.
Un iterador de conjunto múltiple almacena un identificador al nodo asociado de conjunto múltiple, que a su vez almacena un identificador para el contenedor asociado.Puede usar iteradores únicamente con los objetos contenedores asociado.Un iterador de conjunto múltiple sigue siendo válido siempre y cuando el nodo asociado de conjunto múltiple es asociado a algún conjunto múltiple.Por otra parte, un iterador válido es dereferencable -- puede utilizarlo para obtener acceso o modificar el valor del elemento que señala -- siempre y cuando no es igual a end().
Borrar o quitar un elemento denomina destructor por el valor almacenado.Destruyendo el contenedor borra todos los elementos.Así, un contenedor cuyo tipo de elemento es una clase de referencia se asegura que ningún elemento sobrevivan al contenedor.La nota, sin embargo, que un contenedor de identificadores hace not destruye sus elementos.
Requisitos
encabezado: <cliext/conjunto>
Cliext deespacio de nombres: