Computers

Beispiele für C ++ Standard List Insert ()

Autor: Laura McKinney
Erstelldatum: 10 April 2021
Aktualisierungsdatum: 18 November 2024
Anonim
Knuth–Morris–Pratt(KMP) Pattern Matching(Substring search)
Video: Knuth–Morris–Pratt(KMP) Pattern Matching(Substring search)

Inhalt

Ich bin ein Softwareentwickler. Ich arbeite seit 15 Jahren mit C ++ -, MFC- und .net-Technologien. Ich mag Videospiele und lese Bücher.

1. Einleitung

Das "einfügen()" Die Funktion der Standardliste wird verwendet, um neue Elemente in die vorhandene Liste einzufügen. Beim Einfügen eines neuen Elements müssen wir die Position und den Wert angeben. Wir werden hier nacheinander ein Beispiel für jede verfügbare Überlastung sehen.

2. Unterstützende Funktionen für diesen Artikel

Bevor wir zu unserem Beispiel übergehen, sehen wir uns zwei Hilfsfunktionen an, die in diesem Beispiel verwendet werden. Die Funktion Add_ListElements () wurde geschrieben, um der Liste Standardelemente hinzuzufügen. Es fügt der Liste 1,2,3,4,5,6 hinzu. Unten ist die Funktion.

Listing 1.1

// ListInsert 01: Funktion zum Verschieben einiger Werte in die Liste void Add_ListElements (listint> & listParam) {listParam.clear (); listParam.push_back (1); listParam.push_back (2); listParam.push_back (3); listParam.push_back (4); listParam.push_back (5); listParam.push_back (6); }}

Die Funktion Print_List () durchläuft die bereitgestellte Liste und druckt den Inhalt in das Konsolenausgabefenster. Unten ist die Funktion.


Listing 1.2

// ListInsert 02: Funktion zum Drucken der Werte in List void Print_List (listint> listParam) {listint> :: iterator listItr; printf (" nDer Inhalt der Listen ist: n"); for (listItr = listParam.begin (); listItr! = listParam.end (); listItr ++) printf ("[% d]", * listItr); }}

3. Einfügen eines einzelnen Elements in eine Liste

Um ein einzelnes Element in die Liste einzufügen, müssen wir die unten angegebene Überladung der Einfügefunktion verwenden:

Iterator einfügen (const_iterator _Wo, _Ty && _Val)

Hier erwartet der Parameter "_Where" die Position, an der das neue Element eingefügt werden muss. Der zweite Parameter _Val ist der Wert, den wir einfügen möchten. Schauen Sie sich jetzt diesen Code an.

Listing 1.3:

//3.1 Liste und Iteratorliste erstellenintint> theList; Add_ListElements (theList); Print_List (theList); //3.2 Positioniere den Iterator zum Einfügen listint> :: iterator Position; Position = theList.begin (); Position ++; Position ++; //3.3 Einfügen eines Elements und Drucken der Liste printf (" nNach dem Einfügen des einzelnen Elements"); Position = theList.insert (Position, 7); Print_List (theList);

Im Code in 3.1 haben wir die Liste erstellt und sechs Standardelemente hinzugefügt, indem wir die Funktion Add_ListElements () (Listing 1.1) aufgerufen haben. Dann haben wir den Inhalt der Liste gedruckt.


Im Code in 3.2 haben wir den Iterator für die Liste durch Aufrufen der Funktion begin () erhalten und ihn durch Ausführen der Inkrementoperation ++ zweimal schrittweise verschoben. Der Iterator zeigt nun auf das dritte Element 3. Dies ist in der folgenden Abbildung dargestellt.

In dem in 3.3 gezeigten Code rufen wir die Einfügefunktion auf, indem wir die Position und den Wert 7 angeben. Der Aufruf fügt ein neues Element an der aktuellen Position hinzu und verschiebt die verbleibenden Elemente nach rechts davon. In der obigen Abbildung wird das neu eingefügte Element als grün und die verschobenen Elemente als gelb dargestellt.

4. Einfügen mehrerer Elemente

Die Einfügefunktion der Standardliste erwartet, dass drei Parameter mehrere Elemente einfügen. Der erste Parameter gibt die Position in der Liste an, an der das Einfügen beginnt. Der zweite Parameter gibt an, wie Elemente eingefügt werden müssen. Der dritte Parameter ist der tatsächliche Wert, der eingefügt werden muss. Das folgende Bild zeigt das Einfügen von drei Elementen des Werts 11 an der Position, die als erster Parameter angegeben ist.


Beachten Sie, dass, obwohl wir mehrere Werte einfügen, alle Werte gleich sind und zusammenhängende zusammenhängende Stellen in der Liste belegen. Schauen Sie sich jetzt den folgenden Beispielcode an.

Listing 1.4

//3.4 Mehrere Elemente von der aktuellen Position einfügen printf (" nNach dem Einfügen der drei Elemente (Wert 11),"); Position = theList.insert (Position, 3, 11); Print_List (theList);

Hier in Zeile drei fügen wir 3 Elemente mit dem Wert 11 ein. In der nächsten Zeile drucken wir die Liste in das Konsolenausgabefenster. Diese Einfügung ist wie unten gezeigt dargestellt.

Beachten Sie, dass sich der Iterator "Position" vor dem Insert-Aufruf an Element 7 befindet (dritte Position in der Liste). Nach dem Aufruf zum Einfügen werden an dieser Position drei Elemente hinzugefügt und alle vorhandenen Elemente einschließlich 7 werden nach links verschoben. Die neu hinzugefügten Elemente werden grün und die verschobenen Elemente gelb angezeigt.

5. Kopieren Sie Elemente zwischen Liste

Mit der Standardmethode zum Einfügen von Listen können die Listenelemente auch aus einer anderen Liste kopiert werden. Die Parameterliste der Funktion wird unten angezeigt.

Der erste Parameter "Position" bezeichnet den Kopierort in der Zielliste. Der zweite und dritte Parameter geben die Start- und Endposition aus der Quellliste an und geben an, welcher Elementbereich von der Quelle zum Ziel kopiert werden soll. Schauen Sie sich jetzt den folgenden Code an.

Listing 1.5

//3.5 Elemente aus einer anderen Liste einfügen (Kopieren) //3.5.1 Erstellen Sie die Quellliste und setzen Sie den Iterator // position listint> SecondList; Add_ListElements (SecondList); listint> :: iterator Start = SecondList.begin (); listint> :: iterator End = SecondList.end (); Start ++; Start ++; Ende--; Ende--;

Hier wird die Quellenliste für unser Beispiel vorbereitet. In Zeile 4,5 wird eine Liste erstellt und die Standardelemente 1,2,3,4,5,6 hinzugefügt. In Zeile 6 und 7 haben wir den Listeniterator abgerufen, der auf Anfang und Ende der Liste zeigt. In Zeile 8-11 haben wir den Start- und Enditerator neu positioniert, sodass nur zwei Elemente in die Zielliste kopiert wurden.

Schauen Sie sich nun den folgenden Code an, der die Listenelemente aus "SecondList" kopiert.

Listing 1.6:

//3.5.2 Kopieren Sie die Quellelemente in die Zielposition ++; theList.insert (Position, Start, Ende); printf (" nNach dem Einfügen der Elemente aus der zweiten Liste"); Print_List (theList);

Beachten Sie, dass wir den Iterator um ein Element (Zeile 2) von seiner aktuellen Position verschoben haben. Beziehen Sie sich auf das vorherige Bild und wir können sagen, dass die Position jetzt auf das vierte Element in der Liste zeigt. In Zeile 3 haben wir die Einfügefunktion aufgerufen, die tatsächlich eine Kopie von der Quelle zum Ziel ausführt. Dies ist unten dargestellt.

Sobald die Listenelemente kopiert wurden, wird der Inhalt der Zielliste im Konsolenausgabefenster gedruckt. Das vollständige Beispiel und seine Ausgabe sind unten dargestellt.

Beispiel abgeschlossen

#include stdio.h> #include conio.h> #include list> using namespace std; // ListInsert 01: Funktion zum Verschieben einiger Werte in die Liste void Add_ListElements (listint> & listParam) {listParam.clear (); listParam.push_back (1); listParam.push_back (2); listParam.push_back (3); listParam.push_back (4); listParam.push_back (5); listParam.push_back (6); } // ListInsert 02: Funktion zum Drucken der Werte in List void Print_List (listint> listParam) {listint> :: iterator listItr; printf (" nDer Inhalt der Listen ist: n"); for (listItr = listParam.begin (); listItr! = listParam.end (); listItr ++) printf ("[% d]", * listItr); } // ListInsert 03: Liste durch Remove_if und Prädikate löschen void main () {//3.1 Liste und Iteratorliste erstellenintint> theList; Add_ListElements (theList); Print_List (theList); //3.2 Positioniere den Iterator zum Einfügen listint> :: iterator Position; Position = theList.begin (); Position ++; Position ++; //3.3 Einfügen eines Elements und Drucken der Liste printf (" nNach dem Einfügen des einzelnen Elements"); Position = theList.insert (Position, 7); Print_List (theList); //3.4 Mehrere Elemente von der aktuellen Position einfügen printf (" nNach dem Einfügen der drei Elemente (Wert 11),"); Position = theList.insert (Position, 3, 11); Print_List (theList); //3.5 Elemente aus einer anderen Liste einfügen (Kopieren) //3.5.1 Erstellen Sie die Quellliste und setzen Sie den Iterator // position listint> SecondList; Add_ListElements (SecondList); listint> :: iterator Start = SecondList.begin (); listint> :: iterator End = SecondList.end (); Start ++; Start ++; Ende--; Ende--; //3.5.2 Kopieren Sie die Quellelemente in die Zielposition ++; theList.insert (Position, Start, Ende); printf (" nNach dem Einfügen der Elemente aus der zweiten Liste"); Print_List (theList); _getch (); }}

Dieser Artikel ist genau und nach bestem Wissen des Autors. Der Inhalt dient nur zu Informations- oder Unterhaltungszwecken und ersetzt nicht die persönliche Beratung oder professionelle Beratung in geschäftlichen, finanziellen, rechtlichen oder technischen Angelegenheiten.

Faszinierende Artikel

Faszinierende Beiträge

Elektronikrecycling: Finden Sie heraus, wo und wie es geht
Misc

Elektronikrecycling: Finden Sie heraus, wo und wie es geht

GA Ander on chreibt über Recycling und andere ökologi che und umweltfreundliche Fragen. Geowi en chaften und eine grüne Wirt chaft ind un ere Zukunft.Da Recycling Ihrer alten Elektronik...
Meine Foto-Composite-Reise
Computers

Meine Foto-Composite-Reise

Deni e beherr cht eit vielen Jahren Fotografie und Photo hop und verkauft einige ihrer Arbeiten. ie tellt ihre Fähigkeiten ein, um Men chen zu helfen.Kun t i t für mich eine Freude zu chaffe...