Klasse :: STL :: Container

Perl-Erweiterung für STL-ähnliche Objektverwaltung
Jetzt downloaden

Klasse :: STL :: Container Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • Perl Artistic License
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Mario Gaffiero
  • Website des Verlags:
  • http://search.cpan.org/~gaffie/

Klasse :: STL :: Container Stichworte


Klasse :: STL :: Container Beschreibung

Perl-Erweiterung für STL-ähnliche Objektverwaltung Klasse :: STL :: Container ist ein Perl-Modulethat bietet einen Rahmen für die schnelles objektorientierte Perl-Anwendungsentwicklung. Es besteht aus einer Reihe von Basisklassen, die dem C ++ / STL-Framework ähnlich sind, sowie eine Anzahl von Helferklassen, die den Kleber bereitstellen, um transparente gemeinsame Funktionen zu erzeugen, und ermöglicht es Ihnen, Ihre Perl-Anwendung sehr schnell zusammenzustellen. Die STL-Funktionalität Bereit, besteht aus Containern, Algorithmen, Versorgungsunternehmen und Iteratoren wie folgt: Container Vektor, Liste, Deque, Warteschlange, Prioritätsraue, Stapel, Tree.Isterer Iterator, Bidirectional_iterator, Resecter_iterator, Forward_iterator.algorithmen Finden, Zählen, count_if, Kopieren, copy_backward, entfernen, remove_if, remove_copy, remove_copy_if, ersetzen, austauschen, ersetzen, ersetzen, nicht_equal_to, größer, garanty_equal, weniger, weniger, weniger, vergleichen, binden1st, bind2nd, mem_fun, ptr_fun, ptr_fun_binary, ptors, patches_ic, logical_and , logical_or, multipliziert, teilt, plus, minus, modulus.synopsis use stl; # Deque Container ... mein $ d = stl :: disque (qw (erster zweiter dritter vierter)); $ d-> push_back ($ d-> fabrik (fünfter ')); $ d-> push_front ($ d-> fabrik ('siebth)); $ d-> pop_front (); # Element vorne entfernen. $ d-> pop_back (); # Element auf der Rückseite entfernen. STL :: for_each ($ d-> beginn (), $ d-> ende (), ptr_fun (':: myprint')); Sub MyPrint {drucken "Daten:", @_, " ";} # Copy constructor ... mein $ d_copy = stl :: disque ($ d); # Algorithmen - find_if () drucken" Element "zweiter 'war", stl :: find_if ($ d-> fit () , $ d-> ende (), stl :: bind1st (stl :: conhalt_to (), 'zweiter'))? 'gefunden': 'nicht gefunden', " "; # Algorithmen - count_if () drucken" Anzahl der Elemente Matching / O / = ", STL :: count_if ($ d-> beginn (), $ d-> ende (), stl :: bind2nd (STL :: Spiele (), 'o'), " "; # Prints '2' - Matches 'Second' und 'Viertel' # Algorithmen - Transformation () STL :: Transformation ($ d-> beginn (), $ d-> ende (), $ d2-> beginnen (), STL :: Ptr_Fun ('ucfirst')); STL :: Transformation ($ d-> beginn (), $ d-> ende (), $ d2-> beginn (), $ d3-> begin () , stl :: ptr_fun_binary (':: mybfun')); sub mybfun {return $ _ . '-'. $ _ ;} # Funktion Adapter - Bind1st STL :: Remove_IF ($ v-> beginnen (), $ v-> ende (), stl :: bind1st (STL :: ECONDE_TO (), $ v-> zurück ())); # Element entfernen Element gleich Rücken () - dh das letzte Element entfernen. STL :: remove_if ($ v-> beginn (), $ v-> ende (), stl :: binden2nd (stl :: patches (), '^ fi'); # Entfernen Sie alle Elemente, die mit REG-EX entsprechen '^ FI '# Sortierliste nach Elementen CMP () FUNKTION $ v-> Sortieren (); # Warteschlangencontainer - FIFO MY $ v = STL :: Warteschlange (QW (erster zweiter dritter vierter Fünftel); drucken' Zurück: ' , $ v-> zurück () -> Daten (), " "# Zurück: fünfte drucken 'vorne:', $ v-> front () -> daten ()," "# Vorne: erstes $ v-> pop (); # POP-Element zuerst in $ v-> Push ($ v-> Fabrik (Sechster ')," "Drucken" zurück: ', $ v-> zurück () -> Daten (), " "# Zurück: Sechster Druck 'Front:', $ v-> Front () -> Daten ()," "# Vorne: zweite # iteratoren für (mein $ i = $ v-> beginn ();! $ I-> at_end (); ++ $ i $ i) {drucken" Daten: ", $ i-> p_Element () - > Daten (); ", $ ri-> p_element () -> daten (); ++ $ ri;} # Inserte My $ Three2One = STL :: Liste (QW (32 1)); My $ Four2six = STL :: Liste (QW (45 6)); meine $ sieben2nine = stl :: list (qw (78 9)); mein $ result = stl :: list (); stl :: kopie ($ drei2de-> begin (), $ drei2 ein -> ende (), stl :: front_inserter ($ ergebnis)); stl :: kopie ($ sieben2nine-> fit (), $ seven2nine-> ende (), stl :: back_inserter ($ ergebnis)); mein $ isew = STL :: Find ($ Ergebnis-> Start (), $ Ergebnis-> Ende (), 7); STL :: Kopie ($ Four2six-> Beginn (), $ Four2Six-> Ende (), STL :: Inserter ($ Ergebnis, $ ISEVEN)); # $ Ergebnis jetzt enthält (1, 2, 3, 4, 5, 6, 7, 8, 9); # Vektorbehälter ... mein $ v = stl :: vector (qw (erster zweiter dritter vierter fünfter); meine $ e = $ v-> bei (0); # Rückzeiger auf das erste Element. Drucken 'Element-0:', $ E-> Daten (), " "; # Element-0: Erster $ E = $ v-> at ($ v-> Größe () - 1); # Return-Zeiger auf das letzte Element. Drucken 'Element-Last:', $ E-> Daten () " "; # Element-Last: Fünfter $ e = $ v-> bei (2); # Rückzeiger auf das 3. Element (IDX = 2). Drucken 'Element-2:', $ E-> Daten ()," "; # Element-2: Dritte # Priority Warteschlange My $ P = STL :: Priority_Queue (); $ P-> Push ($ P-> Fabrik (Priorität => 10, Daten => 'Zehn'); $ p -> Push ($ p-> Fabrik (Priorität => 2, Daten => 'zwei'); $ p-> Push ($ p-> Fabrik (Priorität => 12, Daten => 'zwölf')); $ p-> Push ($ p-> Fabrik (Priorität => 3, Daten => 'Drei'); $ P-> Push ($ p-> Fabrik (Priorität => 11, Daten => 'elf') ); $ p-> Push ($ p-> Fabrik (Priorität => 1, Daten => 'one'); $ p-> Push ($ p-> Fabrik (Priorität => 1, Daten => 'eins -2 '); $ p-> Push ($ P-> Fabrik (Priorität => 12, Daten =>' zwölf-2 '); $ p-> Push ($ p-> Fabrik (Priorität => 20) , data => 'zwanzig'), $ p-> Fabrik (Priorität => 0, Daten => 'Zero'); drucken "$ p-> Größe () =", $ p-> Größe (), " "; drucken" $ p-> top (): ", $ p-> top ()," "$ p-> top () -> Priorität (7); # Priorität für das obere Element ändern. $ p-> aktualisieren (); # Aktualisieren nach Prioritätsänderung. $ p-> pop (); # Elemente Element mit höchste Priorität. Drucken "$ p-> top ():", $ p-> top (), " "; # Klon $ D-Container in $ d1 ... mein $ d1 = $ d-> klon (); mein $ d2 = stl :: dusque (qw (sechs siebz acht)); # Anhängen von $ d Container zum Ende von $ d2 Container ... $ d2 + = $ d; # Datamembers - Klasse BUILDER HELPER ... {Paket MyClass; Verwenden Sie Klasse :: STL :: ClassMembers (QW (attribut1 attribut2), # Datenmitglieder Klasse :: STL: : Classmbers :: DataMember-> NEU (Name => 'attrib3', Standard => '100', Validate => '^ d + $'), # Data Mitglied mit Attributen Klasse :: STL :: Classmbers :: DataMember-> NEU (NAME => 'attrash4', Default => 'med', validate => '^ (High | med | Niedrig) $'); Verwenden Sie Klasse :: STL :: Classmbers :: Constructor; # produzieren Sie Klasse neu () Funktion} My $ cl = myclass-> neu (attrible1 => 'hello', attrible2 => 'World'); drucken $ cl-> attribut1 (), "", $ cl-> attribut2 (), " "; # 'Hello World' $ cl-> attrible1 (ucfirst ($ cl-> attribut1)); $ cl-> attribut2 (ucfirst ($ cl-> attribut2)); drucken $ cl-> attribut1 ()," " , $ cl-> attribut2 (), " "; # 'Hello World' $ cl-> attribut4 ('avg'); # bewirkt, dass Progam mit '** function attrible2-Wert fehlgeschlagen ist ...' Anforderungen: · Perl.


Klasse :: STL :: Container Zugehörige Software