Maison  >  Article  >  développement back-end  >  Quelles fonctions en STL peuvent utiliser des objets fonction C++ ?

Quelles fonctions en STL peuvent utiliser des objets fonction C++ ?

WBOY
WBOYoriginal
2024-04-25 22:21:02638parcourir

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).

STL 中有哪些函数可以使用 C++ 函数对象?

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 :

  • transform() : Transforme une plage d'éléments en une autre plage d'éléments, en utilisant l'objet fonction spécifié comme fonction de transformation.
  • for_each() : Effectuez 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() : Rechercher des éléments de la collection qui répondent aux conditions spécifiées (définies par l'objet fonction).
  • count_if() : Compte le nombre d'éléments dans l'ensemble qui remplissent les conditions spécifiées (définies par l'objet fonction).

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn