C ++ Kartensuche

C ++ Kartensuche
„Der als MAP bezeichnete assoziierende Container ermöglicht die Speicherung von Elementen in C ++, die sich aus der Interaktion eines Schlüsselwertpaars und den zugeordneten Daten in einer bestimmten Sequenz ergeben. Die relevanten Schlüssel in einem Kartenbehälter werden immer verwendet, um die Informationen ordnungsgemäß zu organisieren. Durch die Verwendung seiner spezifischen Schlüssel können die Werte eines Kartenbehälters abgerufen werden. Um die Daten aus dem Container abzurufen, haben wir die Map :: Search () -Funktion verwendet, die in der Header -Datei angezeigt wird .

Map :: Search () ist eine integrierte Funktion in C ++ STL (Standard-Vorlagenbibliothek), die einen Iterator oder einen statischen Iterator bereitstellt, der auf die Position in der Karte zeigt, in der sich der Schlüssel befindet. Es erzeugt einen Iterator oder einen statischen Iterator, der auf die Karte verweist; Wenn der Schlüssel im Container nicht verfügbar ist, müssen Sie abgeben.End () Funktion wird genannt.”

Vorteile der Karte :: Search () in C++

Zu den Vorteilen des STD :: MAP -Objekts gehören Schnellsuche, Inklusion und Entfernen von Aktionen, die in logarithmischer Zeit ausgeführt werden können. Die Find -Komponente, die einen Verweis auf einen Schlüssel empfängt, bietet die Suchfunktion an. Der Iterator der entsprechenden Komponente wird erstellt, wenn sich der angegebene Schlüssel im STD :: MAP -Objekt befinden kann. Der vorherige Iterator (Karte :: End ()) wird angegeben, wenn sich der bereitgestellte Schlüssel nicht im Behälter befindet.

Syntax von MAP :: Search () in C++

Hier ist die Syntax von MAP :: Search () in c++.

"ODER"

Parameter in Map :: Search () Funktion in C++

Das Angeben des Schlüssels in den Kartencontainern ist der einzige erforderliche Parameter, den die Funktion map :: Search () ermöglicht.

Rückgabewert in MAP :: Search () -Funktion in c++

Der berechnete Wert der Funktion ist entweder ein Iterator oder ein konstanter Iterator, der auf die Position des Schlüssels auf der Karte zeigt. Wenn der Schlüssel irgendwie in den Kartenbehältern fehlt, gibt die Funktion eine Iteration oder eine statische Iteration zurück, die auf die Karte zeigt.End () Funktion.

Laufzeitabschluss für die Suchkomponente

Das Finden von Komponenten in einer STD :: MAP -Search () -Funktion benötigt O (Protokoll n) Zeit, um zu vervollständigen. Da es eine interne Speicherung von Elementen als Ausgleichsbinärbaum (BST) gibt, sollte es auch im schlimmsten Szenario im Vergleich zu Std :: String O (log n) sein. Im Gegensatz dazu ist die ideale Fallzeitkomplexität für das Finden o (1), da Komponenten in einer relationalen Tabelle aufbewahrt werden und der Schlüssel als Indikator dient.

Beispiel 01: Verwenden Sie die Funktion map :: search (), um die Komponente mit einem bereitgestellten Schlüsselwert in C zu durchsuchen++

Hier ist der folgende Code -Snippet; Wir haben die Map :: Search () -Funktion in C ++ verwendet, um den Schlüssel zu finden, in dem sie sich befindet. In unserem Code haben wir zunächst die Header-Datei „iOstream“ hinzugefügt, die ein Standard-Eingabe-Output-Stream für Objekte wie CIN, Cout usw. ist. Fügen Sie dann die Header-Datei "MAP" hinzu, die organisierte Schlüsselwertpaare enthält, wobei jeder Schlüssel unterschiedlich ist und nur hinzugefügt oder entfernt werden kann. Dann haben wir in unserem Code Standard "Namespace STD" verwendet, weil mehr als eine Variable, Funktion, Klasse usw., kann nicht die gleiche Identität innerhalb des genauen Kontextes in C teilen++.

#enthalten
#enthalten
Verwenden von Namespace STD;

Anschließend wurde die Main () -Methode zur Verfügung gestellt. In der main () -Funktion haben wir zunächst eine Variable "n" des Datentyps "Integer" deklariert. Der Container „Map M1“ enthält einen arrangierten Datensatz mit Schlüsselwerten, und „M1“ ist ein Mitglied der zugehörigen Container in der C ++ - Standard -Vorlagenbibliothek. Denken Sie daran, dass Schlüssel im „Karte“ -Container exklusiv sind. Wenn bei der Verwendung der aktuellen Schlüssel neue Elemente hinzugefügt werden, passiert daher nichts, dass nichts passiert. Wenn die Schlüssel jedoch übereinstimmen, können einige eindeutige Mitgliedsfunktionen im Container „Karte“ den bereits bestehenden Paaren neue Daten hinzufügen.

Danach wird „Cout“ verwendet, um die genauen Informationszeile in Anführungszeichen zu drucken. Dann wird „CIN“ verwendet, um die Eingabe vom Benutzer zu nehmen. Dann wird das Schlüsselwort „Auto“ verwendet, um das Element im Container „M1“ zu finden.

int main ()

int n;
Karte m1 = 1, "Hallo",
2, "java",
3, "Python",
4, "Ruby",
5, "React",
6, "Angular",;
Coutn;
Auto item = M1.finde (n);

Nach der Erklärung wird der IF-ELSE-Zustand verwendet. In der IF -Anweisung überprüfen wir das Element, wenn es in Container M1 verfügbar ist, und drucken Sie dann das Element aus. Wenn es nicht im Container „M1“ liegt, zeigt es die Fehlermeldung an, die in der „Cout“ geschrieben wurde.

if (Artikel != M1.Ende())

Cout << "Key exists!" << endl << "The Key at index "

anders

Cout <<"Key does not exist!" << endl << "Sorry for inconvenience."
<< endl <<"Please try again with correct key index from 1 to 6";

Am Ende der Funktion main () werden wir den „exit_success“ zurückgeben, der angibt, dass das Programm erfolgreich ausgeführt wird.

return exit_success;

Hier ist die vollständige Darstellung der Map :: Search () -Funktion, die verwendet wird, um die Komponente mit dem von Benutzer bereitgestellten Schlüsselwert zu finden.

Nach dem Kompilieren des obigen Programms wird die folgende Nachricht angezeigt, dass der Benutzer den Schlüsselindex eingeben muss, den sie/er finden möchte. Benutzer müssen den Schlüsselindex aus dem Bereich von 1 bis 6 eingeben.

Wie Sie unten sehen können, zeigt der Benutzer, wenn der Benutzer in den 1 -Schlüsselindex eingibt!"Und der Schlüssel bei Index 1 ist" Hallo ".

Wenn der Benutzer den Indexschlüssel über dem Bereich von 1 bis 6 eingibt, generiert der Compiler die Fehlermeldung, die "Bitte versuchen Sie es erneut mit dem richtigen Indexschlüssel von 1 bis 6".

Beispiel 02: Verwenden Sie die Map :: Search () -Funktion, um alle Komponenten nach dem Erkennen einer Komponente anzuzeigen

Nehmen wir ein weiteres Beispiel, um alle zufälligen Bestellkomponenten nach der Erdeckung einer Komponente zu drucken. Um Probleme während der Kompilierung und Codeausführung zu vermeiden, haben wir die „Bits/STDC++.h ”Header -Datei im Code. Die main () -Funktion wurde initialisiert, nachdem die Header -Bibliothek und der „Namespace STD“ hinzugefügt wurden. In der main () -Funktion haben wir den M1 -Behälter initialisiert. Dann werden die Werte in zufälliger Reihenfolge eingefügt. Nach dieser Cout -Anweisung wird die Ausgabe ausgedruckt, die gleichen in Anführungszeichen geschrieben. Dann wird „für“ Zustand angewendet, um die Position zu finden, in der „2“ mit der Funktion find () verwendet wird. Return 0, was impliziert, dass das Programm erfolgreich ausgeführt wird.

#enthalten
Verwenden von Namespace STD;
int main ()

Karte M1;
M1.Insert (2, 101);
M1.insert (1, 689);
M1.Insert (3, 350);
M1.Insert (6, 991);
M1.Insert (4, 541);
M1.Insert (5, 542);
Cout << "Elements from position 2 onward are: "<Cout << "KEY\tELEMENT"<für (Auto Iterator = M1.finde (2); Iterator != M1.Ende(); Iterator ++)

Cout
Rückkehr 0;

Hier ist die Ausgabe des kompilierten Programms:

Abschluss

In diesem Artikel wurden genügend Beispiele entwickelt, um die Funktionsweise der Map :: Search () -Methode der C ++ - Sprache zu veranschaulichen. Wir haben die Karte besprochen :: Search () in C arbeiten++. Wir haben auch die Vorteile, Parameter und den zurückgegebenen Wert der Map :: Search () -Funktion besprochen. Am Ende haben wir einige Beispiele zusammengestellt, um der Benutzer bei der Suche nach der Komponente mit einem Schlüsselwert in C zu helfen++.