Heim Backend-Entwicklung C++ Detaillierte Erläuterung der Modusfunktion in C++

Detaillierte Erläuterung der Modusfunktion in C++

Nov 18, 2023 pm 03:08 PM
c++ Detaillierte Erklärung Modusfunktion

Detaillierte Erläuterung der Modusfunktion in C++

Detaillierte Erläuterung der Modusfunktion in C++

In der Statistik bezieht sich der Modus auf den Wert, der in einem Datensatz am häufigsten vorkommt. In der Sprache C++ können wir den Modus in jedem Datensatz finden, indem wir eine Modusfunktion schreiben.

Die Modusfunktion kann auf viele verschiedene Arten implementiert werden. Zwei der häufig verwendeten Methoden werden im Folgenden ausführlich vorgestellt.

Die erste Methode besteht darin, eine Hash-Tabelle zu verwenden, um zu zählen, wie oft jede Zahl vorkommt. Zuerst müssen wir eine Hash-Tabelle definieren, in der jede Zahl der Schlüssel und die Häufigkeit des Vorkommens der Wert ist. Dann durchlaufen wir für den gegebenen Datensatz jede Zahl und vergleichen sie mit dem Schlüssel in der Hash-Tabelle. Wenn die Zahl bereits in der Hash-Tabelle vorhanden ist, addieren wir 1 zum entsprechenden Wert; wenn die Zahl nicht in der Hash-Tabelle vorhanden ist, fügen wir sie der Hash-Tabelle hinzu und setzen ihren Wert auf 1. Schließlich durchlaufen wir die Hash-Tabelle und finden die Zahl, die am häufigsten vorkommt, nämlich den Modus.

Das Folgende ist ein Codebeispiel, das eine Hash-Tabelle verwendet, um die Mehrheitsfunktion zu implementieren:

#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;

int majorityElement(vector<int>& nums) {
    unordered_map<int, int> count;
    for (int num : nums) {
        count[num]++;
    }
    int majority = nums[0];
    int maxCount = count[nums[0]];
    for (auto& pair : count) {
        if (pair.second > maxCount) {
            majority = pair.first;
            maxCount = pair.second;
        }
    }
    return majority;
}

int main() {
    vector<int> nums = {1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4};
    int result = majorityElement(nums);
    cout << "The majority element is: " << result << endl;
    return 0;
}

Führen Sie den obigen Code aus und das Ausgabeergebnis ist:
Das Mehrheitselement ist: 4

Eine andere Methode besteht darin, die Eigenschaften von zu verwenden das Array zur Optimierung. Zuerst sortieren wir den Datensatz. Dann durchlaufen wir das sortierte Array und zählen, wie oft jede Zahl vorkommt. Da die gleiche Zahl kontinuierlich angezeigt wird, können Sie feststellen, ob sie kontinuierlich angezeigt wird, indem Sie vergleichen, ob die aktuelle Zahl und die vorherige Zahl gleich sind. Wenn die aktuelle Zahl mit der vorherigen Zahl übereinstimmt, wird die Zählung um 1 erhöht; andernfalls beginnen wir erneut mit der Zählung. Schließlich finden wir die Zahl mit der größten Anzahl, das ist der Modus.

Das Folgende ist ein Codebeispiel der mithilfe der Array-Sortierung optimierten Mehrheitsfunktion:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int majorityElement(vector<int>& nums) {
    sort(nums.begin(), nums.end());
    int majority = nums[0];
    int count = 1;
    int maxCount = 1;
    for (int i = 1; i < nums.size(); i++) {
        if (nums[i] == nums[i - 1]) {
            count++;
        } else {
            count = 1;
        }
        if (count > maxCount) {
            majority = nums[i];
            maxCount = count;
        }
    }
    return majority;
}

int main() {
    vector<int> nums = {1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4};
    int result = majorityElement(nums);
    cout << "The majority element is: " << result << endl;
    return 0;
}

Führen Sie den obigen Code aus. Das Ausgabeergebnis lautet:
Das Mehrheitselement lautet: 4

Die oben genannten sind zwei häufig verwendete Methoden zur Implementierung der Mehrheit in C++ Zahlenfunktion. Diese Methoden sind hocheffizient und können den Modus in verschiedenen Datensätzen korrekt finden. Basierend auf den tatsächlichen Anforderungen und Datenmerkmalen können wir eine dieser Methoden zur Lösung spezifischer Probleme verwenden. Ich hoffe, dass dieser Artikel Ihnen hilft, die Modusfunktion in C++ zu verstehen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Modusfunktion in C++. 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

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

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)

Heiße Themen

PHP-Tutorial
1510
276
Was ist prägnant (Münze beweisen)? Wie arbeite ich? Beweisen Sie Token -Wirtschaft und Preisprognose Was ist prägnant (Münze beweisen)? Wie arbeite ich? Beweisen Sie Token -Wirtschaft und Preisprognose Aug 06, 2025 pm 06:42 PM

Verzeichnis Was ist prägnant (beweisen), wer prägnant (beweisen)? Welches Risikokapital unterstützt prägnant (beweisen)? Wie prägnant (beweisen) funktioniert sp1zkvm und Prover Network opsuccincinct Technology Cross-Chain-Überprüfung beweisen Token Economics Token Details Token Allocation Token Utility Potential Token Inhaber Inhaber Beweisen Token Preis Vorhersage Beweisen Sie Token Pre-Market Trading Aktivitäten Community Prediction of Provit token Price Warum Succ

C löschen vom Vektor während der Iteration C löschen vom Vektor während der Iteration Aug 05, 2025 am 09:16 AM

Wenn es beim Löschen eines Elements iteriert wird, müssen Sie vermeiden, einen fehlgeschlagenen Iterator zu verwenden. ①Die korrekt ist es, es zu verwenden. ② Die empfohlene "Erase-Remove" -Diom für die Stapeldeletion: vec.erase (std :: remove_if (vec.begin (), vec.end (), Zustand), vec.end ()), die sicher und effizient ist; ③ Sie können mit einem umgekehrten Iterator von hinten nach vorne löschen. Die Logik ist klar, aber Sie müssen auf die Bedingungsrichtung achten. Schlussfolgerung: Aktualisieren Sie den Iterator immer mit dem Return -Wert der Löschrückgabe und verbieten die Vorgänge auf dem fehlgeschlagenen Iterator, ansonsten werden undefiniertes Verhalten entstehen.

Prägungsvorhersage (Beweismünze) Preisprognose: 2025, 2026, 2027-2030 Prägungsvorhersage (Beweismünze) Preisprognose: 2025, 2026, 2027-2030 Aug 11, 2025 am 10:12 AM

Verzeichnis Was ist prägnant (beweisen) Welches Risikokapital unterstützt prägnant (beweisen)? Wie prägnant (beweist) Arbeitsprinzip SP1ZKVM und Prover Network Opsuccinct Technology Cross-Chain-Überprüfung beweisen Token Economics Token Details 2025, 2026, 2027-2030 prägnant

C AUTO -Keyword -Beispiel C AUTO -Keyword -Beispiel Aug 05, 2025 am 08:58 AM

TheautokeYWordinc deducestheTypeOpAvariableFromitInitializer, MakingCodeCleanerandMoremaintainable.1.itucesverbosity, insbesondere mit komplexen Angaben

C -Tag -Versandbeispiel C -Tag -Versandbeispiel Aug 05, 2025 am 05:30 AM

TagDispatching verwendet Typ -Tags, um die optimale Funktion Überladung während der Kompilierungsperiode auszuwählen, um effizientes Polymorphismus zu erreichen. 1. Verwenden Sie std :: iterator_traits, um das Iterator -Kategorie -Tag zu erhalten. 2. Definieren Sie mehrere DO_Advance -Überlastfunktionen und verarbeiten Sie random_access_iterator_tag, bidrectional_iterator_tag bzw. input_iterator_tag; 3. Die Hauptfunktion My_Advance ruft die entsprechende Version basierend auf dem abgeleiteten Tag -Typ auf, um sicherzustellen, dass während der Kompilierzeitentscheidung keine Laufzeitaufwand vorhanden ist. V.

So erhalten Sie die Größe einer Datei in C. So erhalten Sie die Größe einer Datei in C. Aug 11, 2025 pm 12:34 PM

Verwenden Sie die SeekG- und Tellg -Methoden von STD :: IfStream, um die Dateigröße über Plattformen hinweg zu erhalten. Verwenden Sie durch Öffnen einer Binärdatei und der Positionierung bis zum Ende TellG (), um die Anzahl der Bytes zurückzugeben. 2. Es wird empfohlen, STD :: Dateisystem :: File_Size für C 17 und höher zu verwenden. Der Code ist präzise und Fehler werden durch Ausnahmen behandelt. Der C 17 -Standard muss aktiviert sein; 3. Auf POSIX-Systemen kann die Funktion stat () verwendet werden, um die Dateigröße effizient zu erhalten, die für leistungsempfindliche Szenarien geeignet ist. Die entsprechende Methode sollte basierend auf dem Compiler und der Plattform ausgewählt werden.

C Linked List Beispiel C Linked List Beispiel Aug 05, 2025 am 06:23 AM

Dieses C-Einzel-Brenn-Beispiel implementiert Insert-, Traversal- und Löschen von Vorgängen. 1. Verwenden Sie InsertatBeginning, um Knoten in den Kopf einzulegen. 2. Verwenden Sie Insertatend, um Knoten in den Schwanz einzufügen. 3.. Verwenden Sie DeleteNode, um Knoten nach Wert zu löschen und die booleschen Ergebnisse zurückzugeben. 4.. Verwenden Sie die Anzeigemethode, um die verknüpfte Liste zu durchqueren und zu drucken. 5. Befreien Sie den gesamten Knotengedächtnis im Destruktor, um Leckagen zu verhindern; Die endgültige Programmausgabe überprüft die Richtigkeit dieser Operationen und demonstriert die grundlegende Verwaltungsmethode dynamischer Datenstrukturen vollständig.

Was soll ich tun, wenn die Anwendung nicht normal starten kann (0xC0000906)? Sehen Sie die Lösung hier Was soll ich tun, wenn die Anwendung nicht normal starten kann (0xC0000906)? Sehen Sie die Lösung hier Aug 13, 2025 pm 06:42 PM

Beim Öffnen der Software oder des Spiels erscheint plötzlich eine Eingabeaufforderung, dass "die Anwendung nicht normal starten kann (0xc0000906" ", und viele Benutzer werden verwirrt und wissen nicht, wo sie anfangen sollen. Tatsächlich werden die meisten dieser Fehler durch Beschädigung von Systemdateien oder fehlende Laufzeitbibliotheken verursacht. Beeilen Sie sich nicht, das System neu zu installieren. Dieser Artikel bietet Ihnen mehrere einfache und effektive Lösungen, mit denen Sie das Programm schnell wiederherstellen können. 1. Was ist der Fehler von 0xC0000906? Der Fehlercode 0xc0000906 ist eine häufige Start -Ausnahme in Windows -Systemen, was normalerweise bedeutet, dass das Programm die erforderlichen Systemkomponenten oder die Ausführungsumgebung beim Ausführen nicht laden kann. Dieses Problem tritt häufig beim Ausführen großer Software oder Spiele auf. Zu den Hauptgründe gehören: Die erforderliche Laufzeitbibliothek ist nicht installiert oder beschädigt. Das Software -Installationspaket ist endlos

See all articles