Résumé de la fonction commune C++#include<algorithme>

Table des matières

avant-propos

1. Opérations de séquence non modificatrices (12)

2. Modifier l'opération de séquence (27)

3. Tri des séquences et opérations associées (27)

Résumer


avant-propos

#include <algorithm> est l'un des fichiers d'en-tête les plus importants de la bibliothèque de modèles standard C++ (STL), fournissant un grand nombre de fonctions de modèle non membres basées sur des itérateurs.

Inclure spécifiquement : les opérations de séquence non modifiées, les opérations de séquence modifiées, les opérations de partition, les opérations de tri, les opérations de recherche binaire, les opérations de fusion, les opérations de tas, les opérations de valeur maximale et minimale et d'autres opérations

Cet article enregistre en détail comment utiliser les fonctions de la bibliothèque et les explications des fonctions couramment utilisées


1. Opérations de séquence non modificatrices ( 12 )

1.for_each()

effectuer une opération sur chaque élément d'une séquence

for_each(v1.begin(),v1.end(),add);//将v1执行add方法

2.trouver()

Recherche la première occurrence d'une valeur dans une séquence. Compare les éléments de la plage à la valeur d'entrée à l'aide de l'opérateur d'égalité sur l'élément sous-jacent. En cas de correspondance, terminez la recherche et renvoyez un InputIterator pour l'élément

find(v1.begin(),v1.end(),value);//在v1中找到value的索引值

3.find_if()

Trouver le premier élément d'une séquence qui satisfait un prédicat

4.trouver_fin()

Trouver la position de la dernière occurrence d'une sous-séquence dans une séquence

5.find_first_of()

trouve la première occurrence d'une valeur dans un ensemble spécifié de valeurs dans une séquence

6.adjacent_find()

Trouver des paires de valeurs adjacentes dans une séquence

7.count()

Compter le nombre d'occurrences d'une valeur dans une séquence

count(v1.begin(),v1.end(),value);//统计v1中value出现的次数

8.count_if()

compte le nombre de correspondances pour un prédicat dans une séquence

9.incompatibilité()

Comparer : trouver le premier élément de deux séquences qui diffère

10.égal()

Vrai si les éléments correspondants dans les deux séquences sont identiques

11.recherche()

Trouver la position de la première occurrence d'une sous-séquence dans une séquence

12.recherche_n()

Trouver n occurrences consécutives d'une valeur dans une séquence

2. Modifier les opérations de séquence ( 27 )

1.copie()

copier à partir du premier élément de la séquence

copy (v1.begin(),v1.end(),v2.begin());//v1复制给v2

2.copy_backward()

copier à partir du dernier élément de la séquence

3.échange()

échanger deux éléments

swap(a,b);//交换ab

4.swap_ranges()

permute la plage d'éléments spécifiée

5.iter_swap()

échange les deux éléments pointés par l'itérateur

6. transformer ()

applique une opération à chaque élément dans la plage spécifiée

transform(v1.begin(),v1.end(),v2.begin(),add);//将v1复制到v2同时先执行add方法 将其改变后放入v2容器中

7.replace()

remplacer certaines valeurs par une valeur donnée

replace(v1.begin(),v1.end(),old_value,new_value);//在v1中找old_value,并用new_value替换

8.replace_if()

remplacer certains éléments qui satisfont le prédicat

9.replace_copy()

remplace les éléments par une valeur donnée lors de la copie d'une séquence

10.replace_copy_if()

Remplacer les éléments satisfaisant le prédicat lors de la copie de la séquence

11.fill()

remplace tous les éléments par une valeur donnée

fill(v1.begin(),v1.end(),value);//遍历v1,value替换所遍历的值

12.fill_n()

Remplace les n premiers éléments par une valeur donnée

13.générer()

remplace tous les éléments par le résultat d'une opération

14.generate_n()

Remplace les n premiers éléments par le résultat d'une opération

15.supprimer()

supprime les éléments avec une valeur donnée

remove(v1.begin(),v1.end(),value);//删除v1中所有值为value的数据

16.remove_if()

supprimer les éléments qui satisfont le prédicat

17.remove_copy()

supprime les éléments avec la valeur donnée lors de la copie de la séquence

18.remove_copy_if()

Supprimer les éléments qui satisfont un prédicat lors de la copie d'une séquence

19.unique()

supprimer les éléments en double adjacents

vector<int> ModuleArr;
sort(ModuleArr.begin(), ModuleArr.end());//排序
ModuleArr.erase(unique(ModuleArr.begin(), ModuleArr.end()), ModuleArr.end());//去重

20.copie_unique()

Supprimer les éléments en double adjacents lors de la copie d'une séquence

21.inverse()

inverser l'ordre des éléments

reserve(v1.begin(),v1.end());//反转v1次序

22.reverse_copy()

Inverse l'ordre des éléments lors de la copie d'une séquence

23.rotation()

Faire défiler les éléments

24.rotate_copy()

Faire défiler les éléments lors de la copie d'une séquence

25.random_shuffle()

Aléatoire : utilise une distribution uniforme pour déplacer les éléments de manière aléatoire

26.partition()

Partition : placez tous les éléments qui satisfont un prédicat devant

27.stable_partition()

Mettre les éléments qui satisfont un prédicat devant et maintenir l'ordre d'origine

3. Tri des séquences et opérations associées ( 27 )

1.sort()

Trier avec une bonne efficacité moyenne

sort(v1.begin(), v1.end());//v1排序

2.stable_sort()

Trier : et conserver l'ordre d'origine des mêmes éléments

3.partial_sort()

trier la partie précédente de la séquence

4.partial_sort_copy()

Trier la partie précédente de la séquence lors de la copie

5.nth_element()

nième élément Mettez chaque nième élément dans sa position correcte

6.lower_bound()

Trouver la première occurrence d'une valeur supérieure ou égale à une valeur

7.limite_supérieure()

Trouver la première occurrence supérieure à une certaine valeur

8.equal_range()

trouve (sans casser l'ordre) la plus grande plage dans laquelle une valeur donnée peut être insérée

9.binary_search()

Détermine si un élément donné existe dans une séquence ordonnée

10.merge()

fusionner deux séquences triées

merge(v1.begin(),v1.end(),v2.begin(),v2.end(),v3.begin());//合并v1和v2到v3

11.inplace_merge()

fusionner deux séquences triées consécutives

12.inclut()

Définir les opérations sur les structures ordonnées : vrai si une séquence est une sous-séquence d'une autre

13.set_union()

Construit l'union ordonnée de deux ensembles

14.set_intersection()

Construit l'intersection ordonnée de deux ensembles

15.set_difference()

Construit la différence ordonnée de deux ensembles

16.set_symmetric_difference()

Construit la différence symétrique ordonnée (union-intersection) de deux ensembles

17.push_heap()

ajouter des éléments au tas

18.pop_heap()

Extraire un élément du tas

19.make_heap()

Construit un tas à partir d'une séquence

20.sort_heap()

Trier le tas

21.min()

la plus petite des deux valeurs

min(a,b);

22.max()

la plus grande des deux valeurs

max(a,b);

23.min_element()

le plus petit élément de la séquence

max_element(first,end,cmp);//第三个参数cmp可写可不写,max_element()和min_element() 默认是从小到大排列

24.max_element()

le plus grand élément de la séquence

min_element(first,end,cmp)

25.comparaison_lexicographique()

Deux séquences sont lexicographiquement premier-premier

26.prochaine_permutation()

suivant dans l'ordre lexicographique

27.prev_permutation()

précédant lexicographiquement


Résumer

Cet article résume les méthodes de fonction de modèle dans la bibliothèque d'algorithmes et présente en détail l'utilisation des méthodes de fonction couramment utilisées.

Je suppose que tu aimes

Origine blog.csdn.net/Gary_ghw/article/details/131659203
conseillé
Classement