Clase :: STL :: Contenedores

Extensión Perl para la gestión de objetos similar a STL
Descargar ahora

Clase :: STL :: Contenedores Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • Perl Artistic License
  • Precio:
  • FREE
  • Nombre del editor:
  • Mario Gaffiero
  • Sitio web del editor:
  • http://search.cpan.org/~gaffie/

Clase :: STL :: Contenedores Etiquetas


Clase :: STL :: Contenedores Descripción

Extensión Perl para la gestión de objetos similar a STL Clase :: STL :: Contenedores es un modulethat PERL proporciona un marco para el desarrollo de aplicaciones PERL Rapid Object Oriented. Consiste en una serie de clases básicas que son similares al marco C ++ / STL, más una serie de clases auxiliares que proporcionan el pegamento para generar transparentemente funciones comunes, y le permitirá colocar su solicitud de PERL juntos muy rápidamente. La funcionalidad de STL proporcionado consiste en contenedores, algoritmos, servicios públicos e iteradores de la siguiente manera: contenedores vectoriales, lista, deques, cola, priority_queue, pila, iterador de arboles.ritadores, bidireccional_iterator, reverso_iterator, forward_iterator.algorithms Encuentra, Find_if, for_each, Transform, Count, Count_if, Transform, Count, Count_if, Copiar, copiar_backward, eliminar, eliminar_if, remove_copy, remove_copy_if, reemplazar, reemplazar_if, reemplazar_copy, reemplazar_copy_if.ustands igual_to, not_equal_to, mayor, mayor_igal, menos, menos_igal, comparar, bind1st, bind2nd, mem_fun, ptr_fun, ptr_fun_binary, coincide, matches_ic, logicy_and , Logical_or, multiplica, divide, más, menos, Modulus.Synopsis usa STL; # Deques Container ... My $ D = STL :: Deque (QW (primer segundo tercero cuarto)); $ d-> push_back ($ D-> fábrica ('quinto')); $ D-> PUSH_FRONT ($ D-> Fábrica ('Séptimo')); $ d-> pop_front (); # Eliminar elemento al frente. $ D-> pop_back (); # Eliminar el elemento en la parte posterior. stl :: for_each ($ D-> comienzan (), $ D-> FIN (), PTR_FUN (':: MyPrint')); Sub MyPrint {Imprimir "Datos:", @_ " ";} # Copia constructor ... My $ D_COPY = STL :: Deque ($ d); # algoritmos - Find_if () Imprimir" Element 'Second' fue ", STL :: Find_if ($ D-> comienza () , $ D-> FIN (), STL :: Bind1st (STL :: igual_to (), 'Segundo'))? 'Encontrado': 'No encontrado', " "; # Algoritmos - contar_if () Imprimir" Número de elementos coincidentes / o / = ", STL :: Count_if ($ D-> Comenzar (), $ D-> Fin (), STL :: Bind2nd (STL :: coincidencias (), 'O')), " "; # imprime '2' - Coincide con 'Segundo' y 'Cuarto' # algoritmos - Transformar () STL :: Transforme ($ D-> Comenzar (), $ D-> FIN (), $ D2-> Comienza (), STL :: PTR_FUN ('UCFIRST')); STL :: Transforme ($ D-> Comenzar (), $ D-> FIN (), $ D2-> Comenzar (), $ D3-> Comenzar () , STL :: PTRA_FUN_BINARY (':: MyBFUN')); Sub MyBFun {Devuelve $ _ . '.'. $ _ ;} # Adaptadores de función - Bind1st STL :: REMORDE_IF ($ V-> Comience (), $ v-> FIN (), STL :: Bind1ST (STL :: igual_to (), $ v-> Atrás ()); # Eliminar elemento igual a la espalda () - es decir, eliminar el último elemento. STL :: REMORIFICACIÓN_IF ($ V-> Comience (), $ v-> FIN (), STL :: Bind2ND (STL :: Partidos (), '^ fi'); # Eliminar todos los elementos que coincidan con reg-ex '^ Lista de clasificación de # # # de acuerdo con elementos CMP () Función $ V-> Ordenar (); # Contenedores de colas - FIFO MIS $ V = STL :: Cola (QW (primer segundo cuarto cuarto cuarto); Imprimir 'atrás:' , $ v-> atrás () -> datos (), " "# ATRÁS: FIESTRACIÓN FIESTA 'FRENTE:', $ V-> FRONT () -> DATOS ()," "# FRONT FRONT: FIRST $ V-> POP (); # elemento pop primero en $ v-> PUSH ($ v-> fábrica ('sexto'))" "Imprimir" de vuelta: ', $ v-> Atrás () -> DATOS (), " "# Atrás: Frente de la sexta impresión ':', $ v-> FRONT FRONT () -> DATOS ()," "# Frente: segundo # iteradores para (My $ i = $ v-> comienzan ();! $ I-> at_end (); ++ $ i) {imprimir" datos: ", $ i-> p_element () - > DATOS ();} # ITERADORES - inverso_iterator My $ ri = stl :: inverse_iterator ($ v-> iter ()) -> primero (); while (! $ ri-> at_end ()) {impresión "datos: ", $ ri-> p_element () -> datos (); ++ $ ri;} # inserters My $ three2one = stl :: list (qw (32 1)); My $ Four2SIX = STL :: LISTA (QW (45 6)); My $ SIET2NINE = STL :: LISTA (QW (78 9)); MY $ Result = STL :: LISTA (); STL :: Copiar ($ THES2ONE-> Comenzar (), $ THERS2ONE -> FIN (), STL :: front_inserter ($ resultado); STL :: Copiar ($ siete2Nine-> Comenzar (), $ Seven2Nine-> Fin (), STL :: Back_inserter ($ resultado)); My $ ISEVEN = STL :: Buscar ($ resultado-> comience (), $ resultado-> final (), 7); stl :: copia ($ cuatro2six-> comienzan (), $ Four2Six-> Fin (), STL :: Inserter ($ resultado, $ ISEVEN)); # $ resultado ahora contiene (1, 2, 3, 4, 5, 6, 7, 8, 9); # Vector contenedor ... My $ v = stl :: vector (qw (primer segundo tercero cuarto quinto)); mi $ e = $ v-> en (0); # Puntero de retorno al primer elemento. Imprimir 'Element-0:', $ e-> DATOS (), " "; # Elemento-0: Primero $ e = $ v-> en ($ v-> tamaño () - 1); # Puntero de retorno al último elemento. Imprimir 'Elemento-Último:', $ e-> DATOS () " "; # Elemento, último: quinto $ e = $ v-> en (2); # Puntero de retorno al 3er elemento (IDX = 2). Imprimir 'Element-2:', $ E-> DATOS ()," "; # Elemento-2: Cola de prioridad # Tercera # My $ P = stl :: priority_queue (); $ p-> Push ($ P-> fábrica (prioridad => 10, datos => 'diez')); $ P -> PUSH ($ P-> Fábrica (prioridad => 2, datos => 'dos')); $ P-> PUSH ($ P-> Fábrica (prioridad => 12, datos => 'doce')); $ P-> PUSH ($ P-> Fábrica (prioridad => 3, datos => 'tres')); $ P-> PUSH ($ P-> Fábrica (prioridad => 11, datos => 'Eleven') ;; $ P-> PUSH ($ P-> Fábrica (prioridad => 1, datos => 'uno')); $ P-> PUSH ($ P-> Fábrica (prioridad => 1, datos => 'uno -2 ')); $ P-> PUSH ($ P-> Fábrica (prioridad => 12, datos =>' twelve-2 ')); $ P-> PUSH ($ P-> Fábrica (prioridad => 20 , datos => 'veinte'), $ p-> fábrica (prioridad => 0, datos => 'cero')); Imprimir "$ P-> Tamaño () =", $ P-> Tamaño (), " "; Imprimir" $ P-> TOP (): ", $ P-> TOP ()", " "; $ P-> TOP () -> Prioridad (7); # Cambie la prioridad para el elemento superior. $ P-> Actualizar (); # Actualización requerida después del cambio prioritario. $ P-> Pop (); # Eliminar elemento con la prioridad más alta Imprimir "$ P-> TOP ():", $ P-> TOP (), " "; CLONE $ D contenedor en $ D1 ... My $ D1 = $ D-> clon (); My $ d2 = stl :: deque (qw (sexto séptimo ocho)); # apéndice $ d contenedor hasta el final de $ D2 Contenedor ... $ D2 + = $ D; # DataMembers - Clase Builder Helper ... {Paquete MyClass; Use Class :: STL :: ClassMembers (QW (attrib1 attrib2), # Data Miembros Clase :: STL: : ClassMembers :: DataMember-> Nuevo (Nombre => 'attrib3', predeterminado => '100', validate => '^ d + $'), # Datos Miembro con atributos Clase :: STL :: ClassMembers :: DatAmember-> Nuevo (nombre => 'attrib4', predeterminado => 'MED', valides => '^ (alto | med | bajo) $'),); Clase de uso :: STL :: ClassMembers :: constructor; # produce clase nueva () Función} My $ CL = MyClass-> Nuevo (attrib1 => 'hola', attrib2 => 'world'); imprimir $ cl-> attrib1 (), "", $ cl-> attrib2 (), " "; # 'Hello World' $ Cl-> attrib1 (UCFIRST ($ CL-> ATTRIB1)); $ CL-> ATTRIB2 (UCFIRST ($ CL-> ATTRIB2)); Imprimir $ CL-> Attrib1 ()," " , $ cl-> attrib2 (), " "; # 'Hello World' $ CL-> ATTB4 ('AVG'); # Causa Progam para morir con '** Función Attrib2 Valor Value Validation Validation ...' Requisitos: · Perl


Clase :: STL :: Contenedores Software relacionado