Sortieren Strukturen. STL Часть 13

Bewerten Sie diesen Artikel




Sortier Strukturen c ++, stl AnfängerGezeigt im vorherigen Abschnitt verschiedene Sortier - Flexible und schöne Mechanismus für alle Gelegenheiten. Das ist nur in der Praxis, die Sortierreihenfolge so gut wie nie ein reines haben. Das ist alles aus dem Bereich der Bildungs- und Demonstrations Aufgaben. In der Praxis wird die häufiger das Problem ziemlich voluminösen Datenstrukturen sortiert (sogar sperrig in der Größe, und entsprechend der Anzahl der Felder). und sortieren (oder das Zurückgreifen greifen~~POS=HEADCOMP) sie werden für die verschiedenen Felder dieser gleichen Strukturen auf den Werten haben. Aber hier zu Hilfe kommen алгоритмы STL, insbesondere wenn sie in Verbindung mit dem verwendeten functors.

Lassen Sie uns das typische Modellproblem sehen, die wir gesehen haben, bevor - eine Beschreibung der Trainingsgruppe oder Fakultät:

Das Programm fordert die Feldnummer Daten, auf denen Sortieranlage durchgeführt werden (tatsächlich - Vergleich). Wenn diese Zahl eingegeben wird, als positive Zahl, dann sortieren nach das Feld aufsteigend geht. Wenn die Nummer mit einem Minuszeichen eingegeben wird - wird die Sortierreihenfolge umgekehrt:

Sortier Strukturen c ++, stl AnfängerSortier Strukturen c ++, stl Anfänger

beachten Sie, dass der Sortieralgorithmus kümmert sich nicht, diese Art: wenn die numerische Daten, der größte, und wenn Kleinbuchstaben, um leksograficheskom.

Newsletter neue Lektionen über die Programmierung:

Öl

Etwa Öl

praktische Erfahrungen über die Softwareentwicklung 40 Jahre. Lehrer Globale Logik internationales Softwareunternehmen. IBM Developer Works Permanent Autor von Publikationen. Wissenschaftliche Herausgeber der Computerliteratur-Verlag "Symbol-Plus", Sankt Petersburg.

2 Gedanken zu "Sortieren Strukturen. STL Часть 13

  1. А сможете аналогично растолковать функцию find(…)?
    Пытался самостоятельно написать поиск по вектору для структуры типа

    по id-элементу (при том элементов с одинаковым id быть не может).
    Пробовал писал функтор типа

    и посылать его с уже инициализированым id (создавал объект функтора с параметрами и кидал уже его) — нахватал кучку ошибок вродефункции find(★аргументы★) не существует”.
    Пробовал аналогично с лямбдой — всё тоже самое
    Подозреваю себя в географически неправильном расположении рук

Hinterlasse eine Antwort

Platz Code in Tags: <pre class="lang:c ++ dekodieren:true ">DEIN CODE</Vor>