Inhaltsverzeichnis
Syntax zum Definieren der Kartendatenstruktur
Aktualisieren Sie die Syntax der Elemente innerhalb der Karte
Algorithmus
Beispiel
Ausgabe
Update nach Suche
Fazit
Heim Backend-Entwicklung C++ C++-Programm zum Aktualisieren des Wörterbuchwerts nach Schlüssel

C++-Programm zum Aktualisieren des Wörterbuchwerts nach Schlüssel

Aug 28, 2023 pm 10:37 PM
c程序 键更新 字典值更新

C++-Programm zum Aktualisieren des Wörterbuchwerts nach Schlüssel

Viele Computersprachen stellen ein Wörterbuch bereit, bei dem es sich um eine Datenstruktur handelt. Ein Wörterbuch ist eine schnellere Datenstruktur, die Daten basierend auf Schlüsseln und Werten speichert. Es behält Schlüssel-Wert-Kombinationen bei, sodass Schlüssel nahezu in Echtzeit problemlos nach bestimmten Komponenten durchsucht werden können. Der C++-STL-Sprachstandard umfasst wörterbuchähnliche Datenstrukturen. Zur Beschreibung dieser Datenstruktur wird der Begriff „map“ verwendet. Diese Karte erstellt ein Paar aus Schlüsseln und Werten eines beliebigen Typs (da wir C++ verwenden, müssen die Typen vor der Kompilierung definiert werden). In diesem Abschnitt wird gezeigt, wie Werte in einer vorhandenen Karte oder einem vorhandenen Wörterbuch in C++ aktualisiert werden.

Sehen wir uns zunächst die Definition der Kartendatenstruktur an. Diese internen Vorlagen erfordern zwei verschiedene Typen. Die Syntax und die notwendigen Bibliotheken werden unten angezeigt -

Syntax zum Definieren der Kartendatenstruktur

#include <map>
map<type1, type2=""> mapVariable;
</type1,></map>
Nach dem Login kopieren

In diesem Fall müssen wir die „map“-Bibliothek importieren, um die Kartendatenstruktur zu verwenden. Hierzu sind die Datentypen 1 und 2 erforderlich. Der Datentyp des Schlüsselparameters ist Typ1 und der Datentyp des Wertparameters ist Typ2. Hier ist das von der Kartentypklasse abgeleitete Objekt „mapVariable“. Sehen wir uns nun an, wie man es mithilfe der C++-Zuordnung erhält.

In der Kartendatenstruktur können wir Werte in die Karte einfügen, indem wir auf den vorhandenen oder neuen Schlüssel zugreifen. Da es sich hier um die Aktualisierung eines Werts handelt, müssen wir den vorhandenen Schlüssel aktualisieren. Schlüssel werden in eckigen Klammern wie in der Array-Index-Notation verwendet. Schauen wir uns die Syntax dieses -

an

Aktualisieren Sie die Syntax der Elemente innerhalb der Karte

mapVariable [<the key="" value="">] = <the new="" value="">;
</the></the>
Nach dem Login kopieren

Algorithmus

  • Erstelltes Wörterbuch oder Karte D

  • Hat bereits den Schlüsselwert k

  • Der Wert v

  • des neuen Schlüssels k
  • Update wie D[ k ] = v

  • Zurück nach D

Beispiel

#include <iostream> 
#include <map> 
using namespace std;

void display( map <string, int>& givenMap ){
   for ( auto& it : givenMap ) {
      cout << "Key: " << it.first << ", value: " << it.second << endl;
   }
}
   
int main(){ 
   map<string, int> givenMap;
   
   givenMap = { { "ABCD", 25 },
        { "EFGH", 50 },
        { "IJKL", 75 },
        { "MNOP", 100 },
        { "QRST", 125 }
   };
   
   cout << "Before updation: " << endl;
   display( givenMap );
  
   cout << "After Updation: " << endl;
   
   //update the value of MNOP to 500
   givenMap[ "MNOP" ] = 500; 
   display( givenMap );
}
Nach dem Login kopieren

Ausgabe

Before updation: 
Key: ABCD, value: 25
Key: EFGH, value: 50
Key: IJKL, value: 75
Key: MNOP, value: 100
Key: QRST, value: 125
After Updation: 
Key: ABCD, value: 25
Key: EFGH, value: 50
Key: IJKL, value: 75
Key: MNOP, value: 500
Key: QRST, value: 125
Nach dem Login kopieren

Bei dieser Methode haben wir den Wert erfolgreich aktualisiert, indem wir auf den Schlüsselparameter zugegriffen haben. Allerdings ist dieser Vorgang möglicherweise nicht immer genau. Dieses Verfahren hat einen schwerwiegenden Nachteil: Der angegebene Schlüssel ist möglicherweise nicht in der Karte vorhanden. Durch diesen Vorgang wird jedoch ein neuer Schlüssel mit dem angegebenen Wert eingefügt. In der nächsten Methode werden wir also sehen, wie man ein Element nach einer erfolgreichen Suche sucht und aktualisiert.

Update nach Suche

Mit der Funktion find() im Kartenobjekt können Sie prüfen, ob ein bestimmter Schlüssel in der Karte vorhanden ist. Es wird eine Zeigerreferenz auf den Schlüssel zurückgegeben, andernfalls wird der Zeiger „end()“ auf die Karte zurückgegeben, was bedeutet, dass die Karte kein Element darin enthält. Schauen wir uns zum besseren Verständnis den Algorithmus und die Implementierung an.

Algorithmus

  • Erstelltes Wörterbuch oder Karte D

  • Hat bereits den Schlüsselwert k

  • Der Wert v

  • des neuen Schlüssels k
  • Erstellen Sie ein Iteratorobjekt itr, um den Zeiger des Schlüssel-Wert-Paares abzurufen

  • Rufen Sie die Methode find() auf, um das Wörterbuch D in itr einzufügen

  • Wenn itr nicht das Ende von D ist, was bedeutet, dass der Schlüssel existiert, dann

    • Geben Sie v in itr ein

  • Ende wenn

Beispiel

#include <iostream> 
#include <map> 
using namespace std;

void display( map <string, int>& givenMap ){
   for ( auto& it : givenMap ) {
      cout << "Key: " << it.first << ", value: " << it.second << endl;
   }
}

void updateElement( map <string, int>& givenMap, string givenKey, int newValue ){
   map <string, int>::iterator itr;
   itr = givenMap.find( givenKey );
   if( itr != givenMap.end() ){   // when item has found
      itr->second = newValue;
   }
}
   
int main(){ 
   map<string, int> givenMap;
   
   givenMap = { { "ABCD", 25 },
        { "EFGH", 50 },
        { "IJKL", 75 },
        { "MNOP", 100 },
        { "QRST", 125 }
   };
   
   cout << "Before updation: " << endl;
   display( givenMap );
  
   cout << "After Updation: " << endl;
   
   //update the value of MNOP to 500
   updateElement( givenMap, "MNOP", 1580 );
   display( givenMap );
}
Nach dem Login kopieren

Ausgabe

Before updation: 
Key: ABCD, value: 25
Key: EFGH, value: 50
Key: IJKL, value: 75
Key: MNOP, value: 100
Key: QRST, value: 125
After Updation: 
Key: ABCD, value: 25
Key: EFGH, value: 50
Key: IJKL, value: 75
Key: MNOP, value: 1580
Key: QRST, value: 125
Nach dem Login kopieren

Bei dieser Methode verwendet die Funktion updateElement als Eingabe die Karte, den vorhandenen Schlüssel und den neuen Wert. Suchen Sie dann nach diesem Schlüssel. Aktualisieren Sie einfach den Wert, falls vorhanden, andernfalls leiten Sie ihn einfach von der Funktion ab. Mit dieser Methode können wir also keine neuen Einträge in der Karte erstellen, sondern nur bestehende Einträge aktualisieren.

Fazit

In diesem Artikel haben wir gelernt, wie man Elemente in einer Karte mithilfe von Schlüsseln aktualisiert. Bei der ersten Methode verwenden wir die direkte Zuweisungsmethode, die das Element erfolgreich aktualisiert, aber auch neue Elemente hinzufügen kann, wenn der Schlüssel noch nicht vorhanden ist. Die zweite Methode beseitigt dieses Problem, indem sie zu Beginn eine einfache Suche durchführt. Manchmal bemerken wir möglicherweise, dass die zweite Methode mehr Zeit benötigt, um nach dem Schlüssel zu suchen und ihn dann zu aktualisieren. Daher ist mehr Suchzeit erforderlich als bei der ersten Methode. Aber wenn wir sorgfältig nachdenken, wird diese Entdeckung bei der ersten Methode im Wesentlichen auch realisiert. Da die Datenstruktur Hash-basierte Techniken verwendet, wird sie (in den meisten Fällen) in konstanter Zeit ausgeführt.

Das obige ist der detaillierte Inhalt vonC++-Programm zum Aktualisieren des Wörterbuchwerts nach Schlüssel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Übersetzen Sie Folgendes ins Chinesische: C-Programm zur Konvertierung römischer Ziffern in Dezimalzahlen Übersetzen Sie Folgendes ins Chinesische: C-Programm zur Konvertierung römischer Ziffern in Dezimalzahlen Sep 05, 2023 pm 09:53 PM

Nachfolgend finden Sie einen C-Sprachalgorithmus zum Konvertieren römischer Ziffern in Dezimalzahlen: Algorithmus Schritt 1 – Start Schritt 2 – Römische Ziffern zur Laufzeit lesen Schritt 3 – Länge: = strlen(roman) Schritt 4 – Für i=0 bis Länge-1 Schritt 4.1-switch(roman[i]) Schritt 4.1.1-case'm': &nbs

C++-Programm zum Vergleich der lexikografischen Reihenfolge zweier Zeichenfolgen C++-Programm zum Vergleich der lexikografischen Reihenfolge zweier Zeichenfolgen Sep 04, 2023 pm 05:13 PM

Der lexikografische Zeichenfolgenvergleich bedeutet, dass Zeichenfolgen in Wörterbuchreihenfolge verglichen werden. Wenn beispielsweise zwei Zeichenfolgen „apple“ und „appeal“ vorhanden sind, steht die erste Zeichenfolge an letzter Stelle, da die ersten drei Zeichen von „app“ identisch sind. Dann ist das Zeichen für die erste Zeichenfolge „l“ und in der zweiten Zeichenfolge ist das vierte Zeichen „e“. Da „e“ kürzer als „l“ ist, steht es an erster Stelle, wenn wir lexikografisch sortieren. Zeichenfolgen werden vor der Anordnung lexikografisch verglichen. In diesem Artikel werden wir verschiedene Techniken zum lexikografischen Vergleich zweier Zeichenfolgen mit C++ kennenlernen. Verwendung der Funktion „compare()“ in C++-Strings Das C++-String-Objekt verfügt über eine Funktion „compare()“

C-Programm zum Ermitteln der Länge einer verknüpften Liste C-Programm zum Ermitteln der Länge einer verknüpften Liste Sep 07, 2023 pm 07:33 PM

Verknüpfte Listen verwenden eine dynamische Speicherzuweisung, d. h. sie wachsen und schrumpfen entsprechend. Sie werden als Ansammlungen von Knoten definiert. Hier besteht ein Knoten aus zwei Teilen: Daten und Links. Die Darstellung von Daten, Links und verknüpften Listen ist wie folgt: - Arten von verknüpften Listen Es gibt vier Arten von verknüpften Listen: - Einfach verknüpfte Liste / Einfach verknüpfte Liste Doppelt / Doppelt verknüpfte Liste Zirkuläre einfach verknüpfte Liste Zirkuläre doppelt verknüpfte Liste Wir Verwenden Sie die rekursive Methode, um die Länge der verknüpften Liste zu ermitteln. Die Logik lautet -intlength(node ​​*temp){ if(temp==NULL) returnl;

Das C-Programm verwendet die Funktion rename(), um den Dateinamen zu ändern Das C-Programm verwendet die Funktion rename(), um den Dateinamen zu ändern Sep 21, 2023 pm 10:01 PM

Die Umbenennungsfunktion ändert den alten Namen einer Datei oder eines Verzeichnisses in den neuen Namen. Dieser Vorgang ähnelt dem Verschiebevorgang. Wir können diese Umbenennungsfunktion also auch zum Verschieben von Dateien verwenden. Diese Funktion ist in der Headerdatei der stdio.h-Bibliothek vorhanden. Die Syntax der Umbenennungsfunktion lautet wie folgt: intrename(constchar*oldname,constchar*newname); Die Funktion der rename()-Funktion akzeptiert zwei Parameter. Einer ist alter Name und der andere ist neuer Name. Beide Parameter sind Zeiger auf konstante Zeichen, die den alten und neuen Namen der Datei definieren. Gibt Null zurück, wenn die Datei erfolgreich umbenannt wurde; andernfalls wird eine Ganzzahl ungleich Null zurückgegeben. Während eines Umbenennungsvorgangs

C++-Programm zum Ermitteln des Werts der Umkehrfunktion des hyperbolischen Sinus, wobei ein gegebener Wert als Argument verwendet wird C++-Programm zum Ermitteln des Werts der Umkehrfunktion des hyperbolischen Sinus, wobei ein gegebener Wert als Argument verwendet wird Sep 17, 2023 am 10:49 AM

Hyperbelfunktionen werden mithilfe von Hyperbeln anstelle von Kreisen definiert und entsprechen gewöhnlichen trigonometrischen Funktionen. Es gibt den Verhältnisparameter in der hyperbolischen Sinusfunktion aus dem angegebenen Winkel im Bogenmaß zurück. Aber machen Sie das Gegenteil, oder anders gesagt. Wenn wir einen Winkel aus einem hyperbolischen Sinus berechnen wollen, benötigen wir eine umgekehrte hyperbolische trigonometrische Operation wie die hyperbolische Umkehrsinusoperation. In diesem Kurs wird gezeigt, wie Sie die hyperbolische Umkehrsinusfunktion (asinh) in C++ verwenden, um Winkel mithilfe des hyperbolischen Sinuswerts im Bogenmaß zu berechnen. Die hyperbolische Arkussinusoperation folgt der folgenden Formel -$$\mathrm{sinh^{-1}x\:=\:In(x\:+\:\sqrt{x^2\:+\:1})}, Wo\:In\:ist\:natürlicher Logarithmus\:(log_e\:k)

C++-Programm zum Drucken eines Wörterbuchs C++-Programm zum Drucken eines Wörterbuchs Sep 11, 2023 am 10:33 AM

Eine Karte ist ein spezieller Containertyp in C++, bei dem jedes Element ein Paar aus zwei Werten ist, nämlich einem Schlüsselwert und einem zugeordneten Wert. Der Schlüsselwert wird zum Indizieren jedes Elements verwendet, und der zugeordnete Wert ist der mit dem Schlüssel verknüpfte Wert. Unabhängig davon, ob der zugeordnete Wert eindeutig ist, ist der Schlüssel immer eindeutig. Um Kartenelemente in C++ zu drucken, müssen wir einen Iterator verwenden. Ein Element in einer Menge von Elementen wird durch ein Iteratorobjekt angegeben. Iteratoren werden hauptsächlich mit Arrays und anderen Arten von Containern (z. B. Vektoren) verwendet und verfügen über einen bestimmten Satz von Operationen, mit denen bestimmte Elemente innerhalb eines bestimmten Bereichs identifiziert werden können. Iteratoren können inkrementiert oder dekrementiert werden, um auf verschiedene Elemente in einem Bereich oder Container zu verweisen. Der Iterator zeigt auf den Speicherort eines bestimmten Elements im Bereich. Drucken einer Karte in C++ mit Iteratoren Schauen wir uns zunächst an, wie man definiert

C++-Programm zum Überprüfen, ob ein Zeichen alphabetisch oder nicht alphabetisch ist C++-Programm zum Überprüfen, ob ein Zeichen alphabetisch oder nicht alphabetisch ist Sep 14, 2023 pm 03:37 PM

Die Verwendung von Zeichenfolgen oder Zeichen ist manchmal sehr nützlich, wenn man einige Probleme der Logikprogrammierung löst. Eine Zeichenfolge ist eine Sammlung von Zeichen. Dabei handelt es sich um einen 1-Byte-Datentyp, der zum Speichern von Symbolen in ASCII-Werten verwendet wird. Symbole können englische Buchstaben, Zahlen oder Sonderzeichen sein. In diesem Artikel erfahren Sie, wie Sie mit C++ überprüfen, ob ein Zeichen ein englischer Buchstabe oder ein Buchstabe des Alphabets ist. Überprüfen der Funktion isalpha() Um zu überprüfen, ob eine Zahl ein Buchstabe ist, können wir die Funktion isalpha() in der Header-Datei ctype.h verwenden. Dies nimmt ein Zeichen als Eingabe und gibt „true“ zurück, wenn es sich um ein Alphabet handelt, andernfalls „false“. Schauen wir uns die folgende C++-Implementierung an, um die Verwendung dieser Funktion zu verstehen. Die chinesische Übersetzung von Beispiel lautet: show

C++-Programm zum Ermitteln des Imaginärteils einer gegebenen komplexen Zahl C++-Programm zum Ermitteln des Imaginärteils einer gegebenen komplexen Zahl Sep 06, 2023 pm 06:05 PM

Die moderne Wissenschaft stützt sich stark auf das Konzept der Pluralzahlen, das erstmals im frühen 17. Jahrhundert von Girolamo Cardano etabliert und im 16. Jahrhundert eingeführt wurde. Die Formel für komplexe Zahlen lautet a+ib, wobei a den HTML-Code enthält und b eine reelle Zahl ist. Eine komplexe Zahl soll aus zwei Teilen bestehen: dem Realteil <a> und dem Imaginärteil (<ib>). Der Wert von i oder iota ist √-1. Die Pluralklasse in C++ ist eine Klasse zur Darstellung komplexer Zahlen. Die komplexe Klasse in C++ kann mehrere komplexe Zahlenoperationen darstellen und steuern. Werfen wir einen Blick darauf, wie man die Anzeige mehrerer Zahlen darstellt und steuert. Mitgliedsfunktion imag() Wie oben erwähnt, bestehen komplexe Zahlen aus einem Realteil und einem Imaginärteil. Um den Realteil anzuzeigen, verwenden wir real()

See all articles