Maison >développement back-end >C++ >Comment utiliser les algorithmes STL pour opérer sur des conteneurs STL C++ ?
Processus d'algorithme STL pour faire fonctionner les conteneurs STL C++ : choisissez l'algorithme approprié : choisissez l'algorithme STL en fonction de l'opération requise, comme trouver la valeur maximale, copier des éléments ou trier. Déterminer les itérateurs d’entrée et de sortie : spécifiez les plages d’itérateurs des conteneurs d’entrée et de sortie. Fournissez un objet fonction binaire : définissez un foncteur pour effectuer l'opération élément par élément souhaitée. Appel d'un algorithme : utilisez la fonction algorithm() pour appeler l'algorithme sélectionné, en transmettant la plage de l'itérateur et le foncteur.
La bibliothèque de modèles standard (STL) fournit un ensemble puissant d'algorithmes en C++ pour les conteneurs de séquences d'exploitation (tels que vecteur
, liste
et carte
). Ces algorithmes sont conçus pour fournir un mécanisme efficace et réutilisable pour effectuer des tâches courantes de traitement de données. vector
、list
和map
)。这些算法的设计目的是提供一种高效且可重复使用的机制来执行常见的数据处理任务。
STL算法遵循以下语法:
template<typename InputIterator, typename OutputIterator, typename Function> OutputIterator algorithm(InputIterator first, InputIterator last, OutputIterator result, Function op);
其中:
InputIterator
和OutputIterator
指定了输入和输出容器的迭代器类型。first
和last
是输入容器的迭代器范围。result
是输出容器的迭代器。op
#include <algorithm> #include <iostream> #include <vector> using namespace std; int main() { vector<int> numbers = {1, 3, 5, 7, 9}; auto max_value = *max_element(numbers.begin(), numbers.end()); cout << "最大值:" << max_value << endl; return 0; } 输出:
où : InputIterator
et OutputIterator
spécifient les itérateurs de l'entrée et type de conteneurs de sortie.
first
et last
sont les plages d'itérateurs du conteneur d'entrée. result
est l'itérateur du conteneur de sortie.
op
est un objet fonction binaire (foncteur) utilisé pour effectuer des opérations sur les éléments d'entrée. Cas pratique
**2. 复制元素**Valeur maximale : 9
cout << num << " ";
int main() {
vectorbd43222e33876353aff11e13a7dc75f6 number = {1, 3, 5, 7, 9};
vectorbd43222e33876353aff11e13a7dc75f6 copy;copy.reserve(numbers.size()); Pour améliorer l'efficacité
copy_n(numbers.begin(),numbers.size(), back_inserter(copy));
for (int num : copy) {
1 3 5 7 9
}cout <<
return 0;
}🎜🎜Sortie : 🎜#include🎜🎜3 Trier🎜🎜rrreee🎜1 2 3 5 7🎜.#include #include using namespace std; int main() { vector numbers = {5, 1, 3, 7, 2}; sort(numbers.begin(), numbers.end()); for (int num : numbers) { cout << num << " "; } cout << endl; return 0; } 输出:
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!