Dieser Artikel stellt hauptsächlich die detaillierte Erklärung und einfache Beispiele der STL-Liste in C++ vor. Freunde, die sie benötigen, können sich auf
Die detaillierte Erklärung der STL-Liste in C++
1. Die interne Implementierung von List: ist eine doppelt verknüpfte Liste, die das Einfügen und Löschen effizient durchführen kann, aber keinen Direktzugriff durchführen kann
2 Programm:
#include "stdafx.h" #include <iostream> #include <list> #include <iterator> #include <algorithm> using namespace std; const int num[5] = {1,3,2,4,5}; bool status(const int & value) { return value>6?true:false; } int _tmain(int argc, _TCHAR* argv[]) { list<int> list1; copy(num,num+5,back_insert_iterator<list<int>>(list1)); copy(list1.begin(),list1.end(),ostream_iterator<int>(cout," ")); cout<<endl; list1.sort(greater<int>());//5 4 3 2 1 copy(list1.begin(),list1.end(),ostream_iterator<int>(cout," ")); cout<<endl; list<int>::iterator it = list1.begin(); while (it != list1.end()) { (*it) += 2; it++; } //7 6 5 4 3 list<int>::reverse_iterator re_it = list1.rbegin(); cout<<"从后向前输出: "; while (re_it != list1.rend()) { cout<<*re_it<<" "; re_it++; } cout<<endl; list1.reverse();// 3 4 5 6 7 list1.push_back(8);//3 4 5 6 7 8 list1.pop_front();//4 5 6 7 8 list1.remove(6);//4 5 7 8 list1.remove_if(status);// 4 5 list1.resize(4);// 4 5 0 0 list1.resize(6,1);// 4 5 0 0 1 1 list1.unique();//4 5 0 1 copy(list1.begin(),list1.end(),ostream_iterator<int>(cout," ")); cout<<endl; list1.clear(); cout<<"当前list1含有元素个数:"<<list1.size()<<endl; list1.push_back(7);//list1:7 list<int> list2(3,2);//2 2 2 list2.merge(list1,greater<int>());//list2: 7 2 2 2 list2.insert(++list2.begin(),3);//list2: 7 3 2 2 2 list2.swap(list1);//list1:7 3 2 2 2 list2:empty list1.erase(++list1.begin(),list1.end());// 7 copy(list1.begin(),list1.end(),ostream_iterator<int>(cout," ")); cout<<endl; system("pause"); }Laufergebnisbild:
3. Listenmethode
list member
|
Beschreibung | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Konstruktor | Konstruktor | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
destructor | Destructor | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
operator= | Zuweisungsüberladener Operator | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
assign | Wert zuweisen | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
front | Gibt einen Verweis auf das erste Element zurück | tr >||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
back | Referenz des letzten Elements zurückgeben | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
begin | Gibt den Iterator des ersten Elements zurück | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
end | Gibt den Iterator an der nächsten Position des letzten Elements zurück | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rbegin | Gibt den Rückwärtszeiger des letzten Elements der verknüpften Liste zurück. reverse_iterator | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rend | Gibt den zurück Rückwärtszeiger des ersten Elements der verknüpften Liste Der reverse_iterator an der nächsten Position | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
push_back | Fügt Daten am Ende der verknüpften Liste hinzu td> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
push_front | Fügt Daten am Kopf hinzu der verknüpften Liste | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ein Element am Ende der verknüpften Liste löschen | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pop_front | Ein Element am Kopf der verknüpften Liste löschen | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clear | Alle Elemente löschen | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
erase | Ein Element oder einen Bereich von Elementen löschen (zwei Überladungen) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
entfernen | Elemente mit übereinstimmenden Werten in der verknüpften Liste löschen (alle übereinstimmenden Elemente werden gelöscht) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
remove_if | Elemente löschen, die die Bedingungen erfüllen (die verknüpfte Liste einmal durchlaufen), der Parameter ist eine benutzerdefinierte Rückruffunktion | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
leer | Bestimmen Sie, ob die verknüpfte Liste leer ist | max_size | Gibt die maximal mögliche Länge der verknüpften Liste zurück | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Größe | Gibt die Anzahl der Elemente in der verknüpften Liste zurück | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Größe ändern | Definieren Sie die Länge der verknüpften Liste neu (zwei überladene Funktionen) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
umkehren | Die verknüpfte Liste umkehren | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sortieren | Sortieren Sie die verknüpfte Liste standardmäßig in aufsteigender Reihenfolge | zusammenführen | Fügen Sie zwei geordnete verknüpfte Listen zusammen und machen Sie sie geordnet | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
spleißen | Kombinieren Sie zwei verknüpfte Listen (drei überladene Funktionen) und löschen Sie die zweite verknüpfte Liste nach dem Kombinieren von | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
einfügen | Fügen Sie ein oder mehrere Elemente an der angegebenen Position ein (drei überladene Funktionen) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
swap | Zwei verknüpfte Listen austauschen (zwei Überladungen) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
unique | Benachbarte doppelte Elemente löschen |
Das obige ist der detaillierte Inhalt vonBeispiele für die Verwendung der STL-Liste in C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Der Programmierungsprozess von C# in .NET enthält die folgenden Schritte: 1) Schreiben von C# Code, 2) Kompilieren in eine mittlere Sprache (IL) und 3), die durch die .NET -Laufzeit (CLR) ausführt. Die Vorteile von C# in .NET sind die moderne Syntax, das leistungsstarke Typsystem und die enge Integration in das .NET -Framework, das für verschiedene Entwicklungsszenarien geeignet ist, von Desktop -Anwendungen bis hin zu Webdiensten.

C# ist eine moderne, objektorientierte Programmiersprache, die von Microsoft und als Teil des .NET-Frameworks entwickelt wurde. 1.C# unterstützt die objektorientierte Programmierung (OOP), einschließlich Einkapselung, Vererbung und Polymorphismus. 2. Asynchrones Programmieren in C# wird über Async implementiert und wartet auf Schlüsselwörter, um die Reaktionsfähigkeit der Anwendungen zu verbessern. 3.. Verwenden Sie LINQ, um Datensammlungen präzise zu verarbeiten. 4. Häufige Fehler umfassen Null-Referenzausnahmen und Indexausnahmen außerhalb des Bereichs. Zu den Debugging -Fähigkeiten gehört die Verwendung eines Debuggers und Ausnahmeberechnung. 5. Leistungsoptimierung umfasst die Verwendung von StringBuilder und das Vermeiden von unnötigem Packung und Unboxing.

Die Teststrategien für C#.NET-Anwendungen umfassen Unit-Tests, Integrationstests und End-to-End-Tests. 1. Unit -Test stellt sicher, dass die Mindesteinheit des Codes unter Verwendung des Frameworks MStest, Nunit oder Xunit unabhängig funktioniert. 2. Integrierte Tests überprüfen die Funktionen mehrerer Einheiten kombinierter, häufig verwendeten simulierten Daten und externen Diensten. 3. End-to-End-Tests simuliert den vollständigen Betriebsprozess des Benutzers, und Selen wird normalerweise für automatisierte Tests verwendet.

Das Interview mit C# Senior Developer erfordert das Mastering von Kernwissen wie asynchrones Programmieren, LINQ und interne Arbeitsprinzipien von .NET -Frameworks. 1. Asynchrones Programmieren vereinfacht die Operationen durch Async und wartet auf die Verbesserung der Anwendungsreaktionsfähigkeit. 2.LinQ betreibt Daten im SQL -Stil und achtet auf die Leistung. 3. Die CLR des Net -Frameworks verwaltet den Speicher, und die Müllsammlung muss mit Vorsicht verwendet werden.

C#.NET -Interviewfragen und Antworten umfassen Grundkenntnisse, Kernkonzepte und erweiterte Nutzung. 1) Grundkenntnisse: C# ist eine von Microsoft entwickelte objektorientierte Sprache und wird hauptsächlich im .NET-Framework verwendet. 2) Kernkonzepte: Delegation und Ereignisse ermöglichen dynamische Bindungsmethoden, und LINQ bietet leistungsstarke Abfragefunktionen. 3) Erweiterte Verwendung: Asynchrone Programmierung verbessert die Reaktionsfähigkeit und Expressionsbäume werden für die dynamische Codekonstruktion verwendet.

C#.NET ist eine beliebte Wahl für den Aufbau von Microservices aufgrund seines starken Ökosystems und seiner umfangreichen Unterstützung. 1) Erstellen Sie Rastfulapi mit ASP.NetCore, um die Erstellung und Abfrage der Reihenfolge zu verarbeiten. 2) Verwenden Sie GRPC, um eine effiziente Kommunikation zwischen Microservices zu erreichen, und implementieren Sie Auftragsdienste. 3) Vereinfachen Sie die Bereitstellung und Verwaltung durch Microservices mit Docker Container.

Zu den Best Practices für C# und .NET gehören die Eingabeüberprüfung, die Ausgabecodierung, die Ausnahmebehandlung sowie die Authentifizierung und Autorisierung. 1) Verwenden Sie regelmäßige Ausdrücke oder integrierte Methoden, um die Eingaben zu überprüfen, um zu verhindern, dass bösartige Daten in das System eintreten. 2) Ausgangscodierung Um XSS -Angriffe zu verhindern, verwenden Sie die Methode httputility.htmlencode. 3) Ausnahmebehandlung vermeidet Informationen, die Leckagen aufzeichnen, Fehler aufzeichnen, jedoch keine detaillierten Informationen an den Benutzer zurückgeben. 4) Verwenden Sie ASP.Netidentity- und Schadensbasis-Berechtigung, um Anwendungen vor nicht autorisierten Zugriff zu schützen.

Die Bedeutung von Dickdarm (':') In c Sprache: Bedingte Aussage: Trennung bedingter Ausdrücke und Anweisung Block Loop Anweisung: Trennung der Initialisierung, bedingte und inkrementelle Expression Makrodefinition: Trennung von Makronamen und Makrowert Einzelzeilen -Kommentar: Darstellung des Inhalts vom Kolon bis zum Ende der Zeile als Kommentararraydimension: Geben


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.