Heim  >  Artikel  >  Backend-Entwicklung  >  Wie sortiere ich C++-STL-Container?

Wie sortiere ich C++-STL-Container?

WBOY
WBOYOriginal
2024-06-02 20:22:00386Durchsuche

So sortieren Sie STL-Container in C++: Verwenden Sie die Funktion sort(), um Container an Ort und Stelle zu sortieren, z. B. std::vector. Bei geordneten Containern std::set und std::map werden Elemente beim Einfügen automatisch sortiert. Für eine benutzerdefinierte Sortierreihenfolge können Sie eine benutzerdefinierte Komparatorklasse verwenden, um beispielsweise einen Vektor von Zeichenfolgen alphabetisch zu sortieren.

如何排序C++ STL容器?

So sortieren Sie C++-STL-Container

STL (Standard Template Library) bietet eine Reihe flexibler und effizienter Allzweckalgorithmen zum Durchführen verschiedener Vorgänge an Containern, einschließlich Sortieren. In den folgenden Abschnitten werden mehrere gängige Methoden zum Sortieren von STL-Containern in C++ beschrieben.

Verwenden Sie die Funktion sort()

Die Funktion std::sort() ist die einfachste Funktion in C++ zum Sortieren von Containern. Es akzeptiert eine Referenz oder einen Zeiger auf einen Container als Eingabe und sortiert seine Elemente an Ort und Stelle. Das folgende Beispiel zeigt, wie die Funktion sort() verwendet wird, um einen std::vector zu sortieren: std::sort() 函数是 C++ 中进行容器排序最简单的函数。它接受一个容器的引用或指针作为输入,并将其元素原地排序。以下示例演示如何使用 sort() 函数对一个 std::vector 进行排序:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
  std::vector<int> v = {3, 1, 4, 2, 5};

  // 使用 sort() 函数对向量进行排序
  std::sort(v.begin(), v.end());

  // 打印排序后的向量
  for (int num : v) {
    std::cout << num << " ";
  }
  
  return 0;
}

输出:

1 2 3 4 5

使用 std::set 和 std::map 的内建排序

std::setstd::map 是 C++ 中的有序容器,它们维护自己的元素集合并在插入时自动对元素进行排序。以下示例展示如何使用 std::set

#include <iostream>
#include <set>

int main() {
  std::set<int> s = {3, 1, 4, 2, 5};

  // 由于 std::set 是有序的,元素按升序存储
  for (int num : s) {
    std::cout << num << " ";
  }
  
  return 0;
}

Ausgabe:

1 2 3 4 5

Mit std::set und Die integrierte Sortierung von std: :map

std::set und std::map sind geordnete Container in C++, die ihre eigenen Elementsätze verwalten und Elemente automatisch sortieren. Das folgende Beispiel zeigt, wie Sie mit std::set einen Satz von Ganzzahlen erstellen und sortieren:

#include <iostream>
#include <vector>
#include <algorithm>

class StringComparator {
public:
  bool operator()(const std::string& a, const std::string& b) const {
    return a < b;
  }
};

int main() {
  std::vector<std::string> v = {"apple", "banana", "cherry", "dog", "elephant"};

  // 使用自定义比较器对向量进行排序
  std::sort(v.begin(), v.end(), StringComparator());

  // 打印排序后的向量
  for (const std::string& s : v) {
    std::cout << s << " ";
  }
  
  return 0;
}

Ausgabe:

apple banana cherry dog elephant

Benutzerdefinierter Sortierkomparator🎜🎜Für Fälle, in denen eine benutzerdefinierte Sortierreihenfolge vorliegt Bei Bedarf können Sie es über eine benutzerdefinierte Komparatorklasse implementieren. Das folgende Beispiel zeigt, wie man einen benutzerdefinierten Komparator erstellt, der einen Vektor von Zeichenfolgen alphabetisch sortiert: 🎜rrreee🎜🎜Ausgabe: 🎜🎜rrreee

Das obige ist der detaillierte Inhalt vonWie sortiere ich C++-STL-Container?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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