C ++ Stdcopy

C ++ Stdcopy
„Wenn die Start- und Finish -Positionen der Quelle angegeben werden, werden alle Elemente in diesem Bereich an das angegebene Ziel kopiert. Das C ++ - STL bietet mehrere Copy () -Varianten, mit denen Kopiervorgänge auf verschiedene Weise durchgeführt werden können, jeweils eine eindeutige Verwendung. Alle diese werden im Übergang des Algorithmus beschrieben. Diese Funktionen werden in diesem Artikel zur Verwendung in der regulären Programmierung erläutert.”

Beispiel 1: Verwenden Sie die Methode copy () und copy_n ()

Copy (start_iter1, end_iter1, start_iter2):Die allgemeine Kopiefunktion, Kopie (Strat_iter1, end_iter, start_iter2), wird verwendet, um einen Cluster von einem Container in einen anderen zu verschieben. Es braucht drei Argumente:

Start ITER1: Der Ausgangspunkt für das Kopieren von Elementen wird durch den Zeiger -Start -Iter angezeigt, der auf den Beginn des Quellcontainers hinweist.

End Iter: Das Zeigegerät zum Ende des Quellbehälters, von dem Elemente kopiert werden müssen.

Start Iter2: Der Verweis auf den Beginn des Zielcontainers, von dem Elemente kopiert werden müssen.

copy_n (start_iter1, num, start_iter2): Die Anzahl der Komponenten, die in den Zielcontainer kopiert werden müssen. Darüber hinaus akzeptiert es die folgenden drei Argumente:

Start ITER1: Die Kennung für den Beginn des Quellcontainers, von dem Elemente kopiert werden müssen.

NUM: Eine Ganzzahl, die die Anzahl der Zahlen angibt, die an den Zielcontainer übertragen werden sollen, beginnend mit Start iter1. Wenn eine negative Zahl bereitgestellt wird, passiert nichts.

Start Iter2: Der Ausgangspunkt des Zielcontainers, der durch die Adressstart -Iter identifiziert wird, müssen Elemente mit dem Kopieren beginnen.

Der Code für diese Illustration ist im angegebenen Screenshot beigefügt.

Im Beispiel hier haben wir drei Hauptbibliotheken von C aufgenommen++. Dieser Bibliotheksalgorithmus spielt in diesem Programm eine wichtige Rolle, da er Zugriff auf die STD :: Copy -Funktion bietet. Dann haben wir den Namespace STD im Programm verwendet. Die Verwendung von Namespace -Deklaration verwendet ledig.

Danach haben wir eine Programm -Hauptmethode in der in der wir eine Variable „VEC_1“ einer Vektorklasse deklariert und mit dem Satz numerischer Werte initialisiert haben. Wir haben auch zwei weitere Variablen als "vec_2" und "vec_3" definiert. Wir haben diese Variablen mit den Zielvektoren deklariert. Anschließend haben wir die Methode Copy () bereitgestellt, die drei Argumente „VEC_1) einnimmt.Beginnen Sie “," vect_1.Ende ”und das„ vect_2.Beginnen Sie, um die ersten beiden Werte der Vektoren zu kopieren.

Um die kopierten Vektoren zu drucken. Als nächstes haben wir die Methode copy_n () verwendet, die die ersten fünf Elemente der Vektoren anzeigt. Zum Druck werden die kopierten Vektorelemente für die Schleife wie oben verwendet.

Die von der Methode Copy () und Copy_N () generierte Ausgabe lautet wie folgt:

Beispiel 2: Verwenden von Copy_if () und Copy_backward () Methode

COPY_IF (): Wie unter dem Namen impliziert, kopiert diese Funktion gemäß dem Ergebnis einer „Bedingung.Dies wird mit Hilfe einer Funktion angegeben, die einen booleschen Wert als viertes Argument liefert. Diese Funktion erfordert vier Argumente, von denen drei mit denen in Copy () identisch sind, und eine zusätzliche Funktion, die, wenn sie true zurückgibt, feststellt, ob eine Zahl dupliziert ist oder nicht.

copy_backward (): Bei Verwendung dieser Funktion werden Elemente in den Zielcontainer rückwärts kopiert, bis alle Zahlen nicht kopiert wurden. In start_iter2 beginnt der Kopierprozess, fährt aber rückwärts fort. Es verwendet auch die gleiche Abwehr wie eine Kopie ().

Der Code für diese Illustration ist im angegebenen Screenshot beigefügt.

Im ersten Schritt dieses Programms haben wir unsere Bibliotheken eingefügt, um die C ++ - Funktionen zu holen. Dann deklarieren wir den Vektor als V1 und initialisieren den Vektor mit den Ganzzahlen. Wir haben andere Variablen als V2 und V3 deklariert, die die Zielvektoren sind. Danach haben wir die Funktion copy_if (), die nur die ungeraden Zahlen aus den Vektoren kopiert. Als nächstes wird die Kopie rückwärts () verwendet, um die ersten drei Elemente mit der vierten Endposition zu kopieren. Wir haben die kopierten Vektorelemente mit Hilfe von für die Schleife gedruckt.

Die von der Methode Copy_if () und Copy_backward () generierte Ausgabe lautet wie folgt:

Beispiel 3: Verwendung der Inserter () -Methode

Lassen Sie uns die Inserter () -Syntax erfassen, bevor wir die Aktion copy () ausführen.

# Copy (Strat_iter1, End_iter1, Inserter (Container & X, TypName Container :: Iterator It));

Wir verwenden Inserter () als das Ziel, an das wir die Elemente des Containers übertragen möchten. Das Inserter () benötigt zwei Eingänge. Der erste ist ein willkürlicher Behälter, während der zweite ein Iterator im Container ist.

Es gibt eine Instanz von Iterator ein, die derzeit mit jeder Art von Container funktioniert. Mit dieser Wrapper -Funktion können Iteratorinstanzen einfügen. Es kann schwierig sein und generische Programme daran hindern, den genauen gesamten Containertyp zu kennen, wenn der Name des prozentualen Iterators eingegeben wird. Mit dieser Funktion können Sie vom automatischen Abzug Parameterabzug von Vorlagen profitieren und den Compiler automatisch mit den richtigen Typen für Sie übereinstimmen.

Der Code für diese Illustration ist im angegebenen Screenshot beigefügt.

Hier haben wir mit unserer Hauptmethode begonnen. Im Inneren haben wir den Vektor V1 deklariert und die Vektoren mit den numerischen Werten gesetzt. Aus dem C ++ - Iterator haben wir das Objekt „ITR“ erstellt erstellt. Außerdem haben wir in unserem Programm eine weitere Variable V2 deklariert. Anschließend haben wir die Insert () in die Kopiefunktion aufgerufen, die die Vektorelemente durch Iteration kopiert. Am Ende haben wir die für Schleife, die die kopierten Elemente der angegebenen Vektoren drucken wird.

Die nach der Inserter () -Methode erzeugte Ausgabe lautet wie folgt:

Abschluss

In dem Artikel haben wir die STD :: Kopierfunktionen besprochen, die C ++ unterstützt. Mit der Syntax und dem Beispielprogramm werden vier Methoden demonstriert. Die Parameter und Funktionen jedes Ansatzes unterscheiden sich. Diese Techniken sind in der Header -Datei für den Algorithmus zugänglich.