Klasse :: STL :: Containers

PERL-extensie voor STL-achtig objectbeheer
Download nu

Klasse :: STL :: Containers Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Mario Gaffiero
  • Uitgever website:
  • http://search.cpan.org/~gaffie/

Klasse :: STL :: Containers Tags


Klasse :: STL :: Containers Beschrijving

Perl-extensie voor stl-achtig objectbeheer Klasse :: STL :: Containers is een PERL-modulethat biedt een raamwerk voor een snelle voorwerp-georiėnteerde Perl-applicatie-ontwikkeling. Het bestaat uit een aantal base-klassen die vergelijkbaar zijn met het C ++ / STL-framework, plus een aantal helperklassen die de lijm bieden om transparant gemeenschappelijke functies te genereren, en u in staat stellen om uw perl-applicatie zeer snel samen te stellen. De Functionaliteit van PERL Voorzien bestaat uit containers, algoritmen, nutsvoorzieningen en iterators als volgt: Containers Vector, Lijst, Deque, Queue, Priority_Quue, Stack, Tree.iterators iterator, bidirectioneel_iterator, reverse_iterator, Forward_iterator.algorithms Find, Find_IF, For_Ech, Transform, Count, Count_if, Kopiėren, copy_backward, verwijderen, verwijderen, verwijderen, verwijderen_copy_if, vervangen, vervangen_if, vervangen, vervangen, vervangen_copy_if.copy, vervang_copy_if.utiluties gelijken, non_equal_to, groter, groter, minder, less_equal, vergelijken, bind1st, bind2nd, mem_fun, ptr_fun, PTR_FUN_BINIĖLE, matches, matches_ic, logical_and , logical_or, vermenigvuldigen, verdeelt, plus, min, modulus.synopsis gebruik STL; # Deque Container ... mijn $ D = STL :: Deque (QW (eerste tweede derde vierde)); $ D-> Push_Back ($ D-> fabriek ('vijfde')); $ D-> Push_front ($ D-> Fabriek ('Seventh')); $ d-> pop_front (); # Verwijder element aan de voorkant. $ D-> POP_BACK (); # Verwijder element aan de achterkant. STL :: FOR_ECH ($ D-> BEGIN (), $ D-> EINDE (), PTR_FUN (':: MyPrint')); Sub MyPrint {Print "-gegevens:", @_, " ";} # Copy Constructor ... My $ D_COPY = STL :: DEQUE ($ D); # algoritmen - Find_if () Afdrukken" Element 'tweede' was ", stl :: find_if ($ d-> Begin () , $ d-> einde (), stl :: bind1st (stl :: equal_to (), 'tweede'))? 'gevonden': 'niet gevonden', " "; # Algorithms - Count_IF () Print" Aantal elementen Matching / O / = ", STL :: COUNT_IF ($ D-> BEGIN (), $ D-> Einde (), STL :: BIND2ND (STL :: wedstrijden (), 'o')), " "; # Prints '2' - Matches 'Second' en 'Fourth' # Algorithms - Transform () STL :: Transform ($ D-> Begin (), $ D-> End (), $ D2-> Begin (), STL :: PTR_FUN ('UCFIRST')); STL :: Transform ($ D-> BEGIN (), $ D-> Einde (), $ D2-> BEGIN (), $ D3-> BEGIN () , STL :: PTR_FUN_BINIĖLE (':: MYBFUN')); SUB MYBFUN {return $ _ . '-'. $ _ ;} # FUNCTIEADAPTERS - BIND1ST STL :: Verwijderen_IF ($ v-> Begin (), $ v-> einde (), STL :: bind1st (STL :: equal_to (), $ v-> terug ())); # Verwijder element gelijk aan rug () - IE Verwijder het laatste element. STL :: Verwijderen_if ($ v-> Begin (), $ v-> einde (), stl :: bind2nd (STL :: wedstrijden (), '^ fi')); # Verwijder alle elementen die overeenkomen met reg-ex '^ FI '# Sorteerlijst volgens elementen CMP () Functie $ V-> Sorteren (); # wachtrijcontainers - FIFO MY $ V = STL :: QUE (QW (eerste tweede derde vierde vijfde)); afdrukken' terug: ' , $ v-> terug () -> gegevens (), " "# Back: Fifth Print 'Front:', $ v-> voorkant () -> Gegevens ()," "# Front: First $ v-> pop (); # POP-element eerst in $ v-> push ($ v-> fabriek ('zesde'))," "Afdrukken 'Terug:', $ v-> terug () -> Gegevens ()," "# Back: Sixth Print 'Front:', $ v-> voorkant () -> Gegevens ()," "# Front: seconde # iterators voor (mijn $ i = $ v-> begin (); $ i-> at_end (); ++ $ i) {print" gegevens: ", $ i-> p_element () - > Gegevens ();} # iterators - reverse_iterator My $ ri = stl :: reverse_iterator ($ v-> iter ()) -> eerste (); terwijl (! $ ri-> at_d ()) {print "-gegevens: ", $ ri-> p_element () -> gegevens (); ++ $ ri;} # invoegmachines mijn $ three2one = stl :: lijst (QW (32 1)); mijn $ four2six = stl :: lijst (QW (45 6)); Mijn $ Seven2Nine = STL :: Lijst (QW (78 9)); mijn $ resultaat = STL :: LIST (); STL :: KOPIĖREN ($ 32ONE-> BEGIN (), $ drie2ONE -> Einde (), STL :: front_inserter ($ resultaat)); STL :: KOPIĖREN ($ SIM2NINE-> BEGIN (), $ SIM2NINE-> EINDE (), STL :: BACK_INSERTER ($ CONSTMUNEN)); MIJN $ ISEVEN) = STL :: VIND ($ resultaat-> BEGIN (), $ resultaat-> einde (), 7); stl :: kopie ($ four2six-> begin (), $ four2six-> einde (), stl :: Inserter ($ resultaat, $ iSeven)); # $ resultaat nu bevat (1, 2, 3, 4, 5, 6, 7, 8, 9); # vectorcontainer ... mijn $ v = stl :: vector (qw (eerste tweede derde vierde vijfde))); mijn $ e = $ v-> bij (0); # retourwijzer naar het eerste element. Afdrukken 'Element-0:', $ e-> gegevens (), " "; # Element-0: First $ e = $ v-> op ($ v-> maat () - 1); # retourwijzer naar het laatste element. Afdrukken 'Element-laatste:', $ e-> gegevens () , " "; # Element-laatste: vijfde $ e = $ v-> bij (2); # retourwijzer naar 3e element (idx = 2). Afdrukken 'Element-2:', $ e-> gegevens ()," "; # Element-2: derde # Priority Queue My $ P = STL :: Priority_Quue (); $ P-> Push ($ P-> Fabriek (Prioriteit => 10, gegevens => 'Ten')); $ P -> Duw ($ P-> fabriek (Prioriteit => 2, gegevens => 'twee')); $ P-> push ($ p-> fabriek (prioriteit => 12, gegevens => 'twaalf')); $ P-> Push ($ P-> Fabriek (Prioriteit => 3, Data => 'Three')); $ P-> Push ($ P-> Fabriek (Priority => 11, Data => 'Elf') ); $ p-> push ($ p-> fabriek (prioriteit => 1, gegevens => 'one')); $ p-> push ($ p-> fabriek (Prioriteit => 1, gegevens => 'One -2 ')); $ p-> push ($ P-> fabriek (Prioriteit => 12, gegevens =>' twaalf-2 ')); $ P-> push ($ P-> fabriek (Priority => 20 , Data => 'twintig'), $ p-> fabriek (prioriteit => 0, gegevens => 'nul')); afdrukken "$ p-> maat () =", $ p-> maat (), " "; Print" $ p-> top (): ", $ p-> top ()," "; $ P-> TOP () -> Prioriteit (7); # Wijzig de prioriteit voor topelement. $ P-> vernieuwen (); # Vernieuwen vereist na prioriteitsverandering. $ P-> POP (); # Verwijder element met Hoogste prioriteit. Print "$ p-> top ():", $ p-> top (), " "; # Kloon $ D-container in $ D1 ... My $ D1 = $ D-> Kloon (); mijn $ D2 = STL :: DEQUE (QW (Zesde Zevende Acht)); # Append $ D-container aan het einde van $ D2 Container ... $ D2 + = $ D; # DATAMEMBERS - Klasse bouwer Helper ... {pakket myclass; gebruik klasse :: STL :: ClassMembers (QW (Attrib1 Attrib2), # Data Leden Klasse :: STL: : ClassMembers :: DataMember-> NIEUW (NAME => 'Attrib3', standaard => '100', validate => '^ D + $'), # Data-lid met attributen Klasse :: STL :: ClassMembers:: DataMember-> NIEUWE (NAME => 'ATTIB4', standaard => 'Med', validate => '^ (Hoog | Med | Laag) $'),); gebruik klasse :: STL :: ClassMembers :: Constructor; # produceer klasse Nieuw () Functie} Mijn $ CL = MyClass-> NIEUW (Attrib1 => 'Hallo', Attrib2 => 'World'); Print $ CL-> Attrib1 (), "", $ CL-> Attrib2 (), " "; # 'Hallo World' $ CL-> Attrib1 (UCFIRST ($ CL-> Attrib1))); $ CL-> Attrib2 (UCFIRST ($ CL-> Attrib2); Print $ CL-> Attrib1 ()," " , $ CL-> Attrib2 (), " "; # 'Hallo World' $ CL-> Attrib4 ('AVG'); # Oorzaken Pogam om te sterven met '** Functie Attrib2 Waarde Failed Validation ...' Vereisten: · Perl


Klasse :: STL :: Containers Gerelateerde software