STL fournit plusieurs fonctions qui acceptent les objets de fonction C++ comme paramètres et sont utilisées pour exploiter des collections ou effectuer des transformations spécifiques. Ces fonctions incluent : transform() : Transforme les éléments de la collection à l'aide de l'objet fonction spécifié. for_each() : effectue une opération sur chaque élément de la collection, en utilisant l'objet fonction spécifié. sort() : trie la collection en fonction de l'objet de fonction de comparaison spécifié. find_if() : recherche les éléments qui répondent aux conditions spécifiées (définies par l'objet fonction). count_if() : compte le nombre d'éléments qui remplissent les conditions spécifiées (définies par l'objet fonction).
Fonctions en STL pouvant utiliser des objets de fonction C++
Il existe plusieurs fonctions dans STL (Standard Template Library) qui peuvent accepter des objets de fonction C++ comme paramètres. Ces fonctions sont généralement utilisées pour manipuler des collections ou effectuer des transformations spécifiques. Voici quelques exemples courants :
Cas pratique
L'exemple de code suivant montre comment utiliser l'objet fonction transform() pour convertir un nombre en chaîne :
#include <algorithm> #include <iostream> #include <vector> #include <string> using namespace std; int main() { // 创建一个数字向量 vector<int> numbers = {1, 2, 3, 4, 5}; // 定义一个将数字转换为字符串的函数对象 struct IntToString { string operator()(int num) const { return to_string(num); } }; // 使用 transform() 将数字向量转换为字符串向量 vector<string> strings; transform(begin(numbers), end(numbers), back_inserter(strings), IntToString()); // 打印字符串向量 for (const auto &str : strings) { cout << str << endl; } return 0; }
Dans cet exemple, l'objet fonction IntToString définit une fonction qui convertit un entier en une chaîne. La fonction transform() l'utilise comme fonction de transformation pour convertir un vecteur numérique en vecteur chaîne.
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!