Comment trier les conteneurs STL en C++ : utilisez la fonction sort() pour trier les conteneurs sur place, tels que std::vector. Avec les conteneurs ordonnés std::set et std::map, les éléments sont automatiquement triés lors de l'insertion. Pour un ordre de tri personnalisé, vous pouvez utiliser une classe de comparaison personnalisée, telle que le tri alphabétique d'un vecteur de chaînes.
STL (Standard Template Library) fournit un ensemble d'algorithmes polyvalents flexibles et efficaces pour effectuer diverses opérations sur les conteneurs, y compris le tri. Les sections suivantes décrivent plusieurs manières courantes de trier les conteneurs STL en C++.
La fonction std::sort()
est la fonction la plus simple en C++ pour le tri des conteneurs. Il accepte une référence ou un pointeur vers un conteneur en entrée et trie ses éléments sur place. L'exemple suivant montre comment utiliser la fonction sort()
pour trier un std::vecteur
: 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
是 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; }
Sortie :
1 2 3 4 5
std::set
et std::map
sont des conteneurs ordonnés en C++ qui conservent leurs propres ensembles d'éléments et trient automatiquement les éléments. L'exemple suivant montre comment utiliser std::set
pour créer et trier un ensemble d'entiers : #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; }
Sortie :
apple banana cherry dog elephant
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!